存在型
ポイント
Haskell では存在型はあるが、キーワードとして存在していない
forall と合わせて使う
任意の型を表現できる型
forall = 全称量化子を使う型なので混乱しやすい
forall a. a
任意の型を取りうるので ⊥
exsists a. a
Haskell にはないキーワード
型を与えるとしたどのような型になるか?
これは「型の和集合」になるはず
この「任意の型の和集合」を表すものはデータ型を用いて表現できる
code:haskell
data T = forall a. MkT a