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系はよく似ている。