generated at
Magic Type Classes
GHC-8.2で組み込みで入った
なので、この名前のGHC拡張があるわけではないmrsekut
HaskellのRecordを定義すると、
の2つのinstanceを自動生成する


何が嬉しいのか
OverloadedLabelsの利用が楽になったりする


こんなRecordを定義すると
hs
data T = MkT { x :: Int }
以下がderivingされる
hs
instance HasField "x" T Int where getField _ = x instance UpdateField "x" T T Int where setField _ (MkT _) x = MkT x