Singletons
vs. dependent types
一般に、dependent type family:
を実装するのは難しい(らしい)。一方、singleton type family:
の実装はなんとかなるので、
を満たすことから、
という関係のもと、
Promotion
Haskellはすごいことになっており
というデータ型があると、コンパイラが型とkind:
-
- は全てのkindの集合
を自動で作るdatatype promotionという機能がある。
Singletons library
さらに、singletons libraryというのがあって
なるsingleton type familyを作ってくれる。
その他の重要そうな関数の定義: