Isomorphism
あるcase classに対してMonoidを定義したいとき、大体のものはTupleのMonoidのインスタンスが使えると思います。
こんなときにIsomorphismMonoidが使えます。
Monoid以外の型クラスを定義したい時もこんな感じで使える。
このように、データ構造が同じもののインスタンスを流用する場合はIsomorphismが使えます。
<=>[A, B]はIso[Function1, A, B]のtype aliasで、to: A => Bとfrom: B => Aを定義します。
IsomorphismMonoidなどの型クラスは、toを使って実装されていることに注意しましょう。
0 件のコメント:
コメントを投稿