在Thinking With Types
练习11.2-i中,练习11.2-i将编写具有以下类型签名的函数。
weaken :: OpenSum f ts -> OpenSum f (x ': ts)
data OpenSum (f :: k -> Type) (ts :: [k]) where
UnsafeOpenSum :: Int -> f t -> OpenSum f ts
我认为练习之前的段落应该提供足够的上下文来了解这个函数的功能,但我不清楚。
在实践中,能够扩大开放总和的可能性也很有用。一个新功能,weak,将斧头类型固定在可能性列表的前面。
如果我有一些使用此函数的示例,这将对我完成此练习大有帮助。