GADTs
GADT
をするGHC拡張
{-# LANGUAGE GADTs #-}
GATDsを使うと
GADTSyntax
も有効になる
#WIP
これら2つは等価
code:hs
-- 普通の構文
data List a
= Empty
| Cons a (List a)
-- GADT の構文
data List a where
Empty :: List a
Cons :: a -> List a -> List a
DataKinds
したノリで値コンストラクタを定義できるのか
mrsekut.icon
1行ごとに値コンストラクタを定義する
#??
何が嬉しい?
ユースケースを知りたい
高階多相型
するときに制限を設けられる?
参考
Haskellにおける型レベルプログラミングの基本(翻訳) - Qiita
https://qiita.com/mod_poppo/items/166e28b12d3331ade275
https://qiita.com/mod_poppo/items/166e28b12d3331ade275
https://qiita.com/Izawa_/items/1ef3c3e758698be79b29
https://www.morrowm.com/posts/2021-08-02-shoes.html