#haskell-jp ML にも話が出た RWH日本語版 P62の練習問題2
#data TreeMaybe a = NodeMaybe a (Maybe (TreeMaybe a)) (Maybe (TreeMaybe a))
#私が考えていたのは別の答えだったんですが皆さんはどうですか?
#data TreeMaybe a = Fork a (TreeMaybe a) (TreeMaybe a) | Leaf (Maybe a) もありかなーと思いながら見てました
#constructor は一つにしないといけない問題なんです。
#あ、そっか。じゃあ data TreeMaybe = Node (Maybe (a,(Maybe (TreeMaybe a)),(Maybe (TreeMaybe a)))) はどうだろう。これは空の木を表すことができる (Node Nothing) いかにも「練習問題の答え」という感じだけど
#data Node a = Node a (Tree a) (Tree a) deriving Show
type Tree a = Maybe (Node a)
#みたいなのも考えてみたのですが、
#無駄に複雑な気もします。