Coercible型クラス
日本語では「強制可能」
https://hackage.haskell.org/package/base-4.14.0.0/docs/Data-Coerce.html#t:Coercible
https://kowainik.github.io/posts/deriving#coercible
同じランタイム表現を持つ異なる型の値を変換できる
Haskellのnewtype
は、型の世界では別物として扱われるが、ランタイム上では同じものである
これを相互に強制変換できるってことかな
newtype Hoge = Hoge Int
のような型があったとき、
Hoge
と
Int
はランタイム上は同じなので、これらを相互に変換できる
この時、
Coercible Hoge Int
と
Coercible Int Hoge
が成り立つ
/LugendrePublic/等価制約,Coercible, 種制約
https://www.tweag.io/blog/2020-04-23-deriving-isomorphically/
coerce関数