GHC.Generics
以下のようなものを提供する
など
代数データ型を抽象化したデータ型は、
具体的にはU1や(:+:)などで、
これらを組み合わせることで任意の代数データ型を構築できる
何が嬉しいのか
U1とか:+:とかについて
docsの説明、異常にわかりにくくない?mrsekut.icon
derivingしないで実装することはあるのか
多相な関数とかとはどのように質が異なるのか
つまり、hsの普通の肩変数を用いた定義とはどう異なるのか
f::a->a->a
tsでのgenericsってパラメトリック多相な関数のことを指すと思うけどそれとは違うのか
どういう型の知識が必要か
具体的に言えば、どういうGHC拡張の理解が必要か
関連するGHC拡張はなにか
DeriveGenric
TypeOperators
Generic1ってなに?
圏論で言えば、どの辺の概念になるのか
どの記事を最初に読むのが良い?
pursのgenricsもだいたい同じ話なのか?
活用例
別に6つのinstanceにする必要はないのね
中途半端にinstanceにしてたら変になったりするの #?? データ型を抽象化して関数、メソッド、データ構造等を実装するプログラミング手法
ADTを更に抽象化するのね
ここに書いてる定義はあくまで例であり、一般的な定義ではない #??