{"repo":"morphismtech/squeal","free":true,"listed":false,"github":"https://github.com/morphismtech/squeal","clone":"git clone https://github.com/morphismtech/squeal.git","description":"Squeal, a deep embedding of SQL in Haskell","language":"Haskell","stars":377,"topics":["database","postgresql","sql","haskell"],"license":null,"category":"databases-storage","readme_excerpt":"squeal Github Hackage Stackage YouTube introduction Squeal is a deep embedding of SQL into Haskell. By \"deep embedding\", I am abusing the term somewhat. What I mean is that Squeal embeds both SQL terms and SQL types into Haskell at the term and type levels respectively. This leads to a very high level of type-safety in Squeal. Squeal embeds not just the structured query language of SQL but also the data manipulation language and the data definition language; that's SELECT , INSERT , UPDATE , DELETE , WITH , CREATE , DROP , and ALTER commands. Squeal expressions closely match their corresponding SQL expressions so that the SQL they actually generate is completely predictable. They are also highly composable and cover a large portion of SQL. features generic encoding of Haskell tuples and records into query parameters and generic decoding of query results into Haskell records using generics-sop access to SQL alias system using the OverloadedLabels extension type-safe NULL and DEFAULT type-safe SQL constraints CHECK , UNIQUE , PRIMARY KEY and FOREIGN KEY type-safe aggregation escape hatches for writing raw SQL mtl compatible monad transformer for executing as well as preparing queries and manipulations and Atkey indexed monad transformer for executing definitions. linear, pure or impure, one-way or rewindable migrations connection pools transactions views array, composite and enumerated types json functions and operations multischema support correlated subqueries window function","default_branch":null,"files":null,"tree":[],"storefront":"/r/morphismtech","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/morphismtech/squeal/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}