我想实现一个具有从给定 T 类型转换的函数 conv 的类。伪代码(不编译)如下所示:
data T a b c d = List [a] | Tup1 a | Tup2 a b | Tup3 a b c deriving (Show)
class ConvT t where
conv :: T a b c d -> t
instance ConvT [a] where
conv (List x) = x
instance ConvT (a,b) where
conv (Tup2 a b) = (a,b)
我怎样才能做到这一点?请注意,我不打算在生产中使用它——我只是想更多地了解 Haskell 类型系统。