ツリーデータ型のモナドのモナドを具体的に書き下すととなると、けっこう難しいようだ。何が障害かというと:
- 型がうまく定義できない。
- 空型と単位型
- 部分集合型、内包的記法
- ベキ集合型
- 直積型
- 指数型
- 直和型
- 依存和型
- 依存積型
- 型カインド
- 処理がうまく書けない
- ラムダ記法
- 型付けと型注釈
- 型のラムダ抽象
- タグ付き値〈タグ付きインスタンス〉 v@t
- case-of-or-end文
- forsome-use文 インデックス付き型、依存和型のデータを処理する文
- tuple-and-end文
- cotuple-or-end文
より具体的な細かいこと
- f(x), f[x], x.f, fx, f<x> などの違いに惑わされる。
- 型カインド(K⊆|C|)、型ファミリー(f:I → |C|) などに馴染みがない。型ファミリーは圏の離散図式。
- 依存和型とタグ付き値が扱えない。
型理論だと、独自の用語法・記号法とぎごちない定式化になっている。