すまん
「andとorと再帰的定義」 これと 「代数」 これの関わりを
もう少し説明してくれないだろうか。

Haskellのデータ型でのandとorというのは、次のこと?

(and) => data A = X a b c
(or) => data A X | Y

あと、再帰的定義ができることも分かる。

しかし、どのあたりが代数なのか、俺は他人にちゃんと説明できないんだ。