我在Haskell Wiki上阅读GADTs for dummies页面,我仍然不明白应该如何以及为什么要使用它们.作者提供了一个激励性的例子:
data T a where
D1 :: Int -> T String
D2 :: T Bool
D3 :: (a,a) -> T [a]
Run Code Online (Sandbox Code Playgroud)
这段代码到底是做什么的,为什么它有用?
如果这个问题有点过于模糊,或许相关的问题是:GADT可以用来实现成员函数吗?
haskell ×1