haskell-relational-recordチートシート
最近、haskell-relational-recordを勉強しているが、ドキュメントを読むととにかく大量のデータ型(と型シノニム)が出てきてわけが分からなくなるので整理してみた。
(relational-record-0.1.1.0, relational-query-0.4.0.1, relational-query-HDBC-0.1.0.0のドキュメントを参考にした。)
元データ(SVG)は https://gist.github.com/debug-ito/80e90a3747d5a246a3be を参照。
基本的に、□が型を、矢印が関数を表す。関数の引数などは省略している場合がある。
SELECT系
なお、(Projection c), (Pi a), PlaceholdersはProjectableFunctorとProjectableApplicativeの型クラスなので、|$|, |*|といった関数で内部の型を変換できる。ただし、|$|に与える変換関数はProductConstructorのインスタンスでなければいけない。
INSERT系
UPDATE系
DELETE系
DELETE系とUPDATE系はよく似ている。