在 Vinyl 中,我可以为记录定义类型别名,以便更轻松地导出到其他模块:
import Data.Vinyl
name = Field :: "name" ::: String
age = Field :: "age" ::: Int
type Person = ["name" ::: String, "age" ::: Int]
现在假设我添加了另一个存储高度的字段。
height = Field :: "height" ::: Int
我想很好地为包含 aPerson
和的记录构造一个类型别名height
。天真地,这可能看起来像这样:
type MeasuredPerson = ("height" ::: Int) : Person
显然,这种语法不起作用!有没有办法做到这一点?是否有任何好的参考资料来解释似乎在这里使用的类型级数组语法?