HKD
Higher Kinded Datatypeの略で、データ型にパラメータを追加することにより、汎用性を高める技術。以下のように、全フィールドを型パラメータで包む。User Identityは普通のレコードと同型になり、User Maybeなら要素が欠けているかもしれないレコード、Const aなら全部a型で置き換えたようなものが作れる。
code:haskell
data User h = User
{ userId :: h Int
, userName :: h Text
}
barbies
Haskell Day 2019のfumievalのスライド