KindSignatures
kind推論に失敗するので付けたい
あるなら具体例を見たい

Nat
みたいに *
じゃないやつを使うときとか?
before.hsdata Complex a b c = Complex (a (Maybe (b c)))
after.hsdata Complex (a :: * -> *) (b :: * -> *) (c :: *) = Complex (a (Maybe (b c)))
hsdata GadtsSample :: * -> * where
GadtsSample :: a -> GadtsSample a
GadtsSample
は、 *
を取って、 *
を返す
こう書いても同じ
hsdata GadtsSample (a :: *) where
GadtsSample :: a -> GadtsSample a
GadtsSample
は、 *
である型引数 a
を取る
コレ合ってる?
上の書き方と比べてわかりにくくない?

型引数が増えたときの例もみてみるとか
関数の型宣言みたいに別の行として書きたいよね

何でこのときだけtsの型宣言みたいな感じなんだ
purs(hs)data Proxy :: forall k. k -> Type
data Proxy a = Proxy
参考