我对Haskell比较陌生,我相信我误解了关于类型类的基本内容.假设我想创建一个类型类'T',实现由四个代数类型'A,B,C和D'支持的n-ary树,其结构最大深度为4.这似乎是一个愚蠢的例子,但我认为这最能说明我的观点.
module Test where
class T t0 where
parent :: T t1 => t0 -> Maybe t1
children :: T t1 => t0 -> [t1]
data A = A [B]
instance T A where
parent (A _) = Nothing
children (A bs) = bs
data B = B A [C]
instance T B where
parent (B a _) = Just a
children (B _ cs) = cs
data C = C B [D]
instance T C where
parent (C b …Run Code Online (Sandbox Code Playgroud)