似乎data / newtype类型构造函数总是需要一个类型变量。
假设我只有一些元组和列表的嵌套,我想隐藏实现并限制客户端只使用某组函数?我如何确定哪个元素属于“变量”类型,哪个元素不属于?
编辑:在任何人感到困惑之前:您不需要类型变量!。
我问过这个问题,因为很多例子都包含一个类型变量,但是data / newtype在没有一个变量的情况下完美地工作:
data Foo = Foo Int deriving Show
x = Foo 42
答案 0 :(得分:4)
data T
data T = T
data T = T | S
data T = T (T, T)