ある種のツリーデータ型はモナドにできます。 [追記]この記事は十何年か前に書いておくべきだったのかも知れません。当時は、ツリーデータ型のモナドは自明な事実に見えてました(ツリーばっかりいじっていたからなー)。が、「えっ、そうだったの」と思う人もいそうなので、思い出して記した次第。[/追記] 内容: 自由モノイド=クリーネスター ファイルシステム風パス記法 ツリー形状とリーフ値付きツリー リーフ値付きツリーデータ型のモナド 自由モノイド=クリーネスター 集合Xに対して、Xから生成される自由モノイド (M, #, ε) を定義しましょう。 モノイドの台集合Mは、Xの要素を並べた列の集合。List型構成子を知っているなら、M := List(X) 。 モノイドの演算#は、列〈リスト〉の連接〈concatenation〉。 モノイドの単位元は、空列〈空リスト〉ε 。 台集合MをX*とも書きます。ま