úÎ!A_?@ABCDEFGHIJKLMNOPSafe-.=?HUVXk"~ribbit#Render a type-level query as text. QribbitrStrip redundant unit types out of a string of types. This is used mainly to help simplify the implementation of .Rribbit€Normalize nested type strings to be right associative. Mainly used to help simplify the implementation of other type families.ribbitIType level check to see if the field is actually contained in the schema Sribbit Helper for 6. Reduces the number of equations required, because J doesn't actually care about which conditionl operator it is inspecting.ribbitUProduce the type represeting the placeholder ("?") values in a paramaterized query.ribbit,Produce the type of rows return by a query. Tribbit_Rename the fields in a given schema to reflect an applied table alias. For instance, data FooribbitString two types together. U  U  U0 is similar in principal to the nested tuple (U, (U, UL)), but looks a whole lot nicer when the number of elements becomes large. ribbit%Define a field in a database schema. ribbitD"?" combinator, used to indicate the presence of a query parameter. ribbitNOT conditional combinator. ribbitASD combinator, used for attaching a name to a table in a FROM clause. ribbit)Cross product operator for FROM clauses. ribbitOR combinator for conditions. ribbitAND combinator for conditions. ribbit ">=" combinator for conditions. ribbit">" combinator for conditions. ribbit "<=" combinator for conditions. ribbit"<" combinator for conditions. ribbit "!=" combinator for conditions. ribbit"=" combinator for conditions. ribbitWHERE7 combinator, used for attaching conditions to a query. ribbitFROMT combinator, used for attaching a SELECT projection to a relation in the database.ribbitSELECT! combinator, used for starting a SELECT statement. VribbitLike W-, but produce any kind of string-like thing. ribbitCross product      5 5 87789 9 9 9 9 9 66None-.;=>?HMUVXk;Û /ribbit-Make sure the proposed primary key is legit. Xribbit.Wrapper that helps us avoid orphan instances. 0ribbitLike Y., but defined here to avoid orphan instances. 1ribbitLike Z7, but defined here so we can avoid orphaned instances. 2ribbityRepresents the "base" PostgreSQL type. We say "base" type because whether the type is nullable is handle automatically.e.g. PsqlType "integer" #PsqlType "timestamp with time zone"6ribbitfGiven a Haskell type, produce the PostgreSQL type of columns that store values of that haskell type.:ribbit:Execute a query against a PostgreSQL database connection. ;ribbit+Create the indicated table in the database.See < for details.<ribbit-Produce the statement used to create a table.€In this example, we create an employee table with a multi-part primary key, one nullable field, and a few non-nullable fields. ÿedata Employee instance Table Employee where type Name = "employees" type DBSchema = Field "company_id" Int :> Field "id" Int :> Field "name" Text :> Field "quit_date" (Maybe Day) let primaryKey :: Proxy '["company_id", "id"] primaryKey = Proxy table :: Proxy Employee table = Proxy in createTableStatement primaryKey table This will produce the statement: Ž"create table employees (company_id integer not null, id integer not null, name text not null, quit_date date, primary key (company_id, id));"[ribbitLike W-, but produce any kind of string-like thing. /0123456789:;<67234:;<985/10\       !"#$%&'()*+,-./01234456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[Y\]^2]_3Y`%ribbit-0.2.2.0-65Tkx1Dj5kS8BODnvHx9vQDatabase.RibbitDatabase.Ribbit.PostgreSQLRenderrender ValidFieldArgsType ResultTypeTableDBSchemaName:>Field?NotAsXOrAndGteGtLteLt NotEqualsEqualsWhereFromSelect $fTableTYPEX $fRenderTYPE?$fRenderTYPEExpr$fRenderTYPEExpr0$fRenderTYPEOr$fRenderTYPEAnd$fRenderTYPELte$fRenderTYPELt$fRenderTYPEGte$fRenderTYPEGt$fRenderTYPENot$fRenderTYPENotEquals$fRenderTYPEEquals$fRenderTYPEWhere$fRenderTYPEFrom $fRender[]: $fRender[]:0$fRenderTYPESelect$fEq:>$fOrd:>$fShow:>ValidKeyToRowFromRowPsqlType unPsqlType HasIsNullable HasPsqlTypepsqlType HasPsqlTypes HasFieldsquery createTablecreateTableStatement$fHasFields[]:$fHasFields[][]$fHasFieldsTYPE:>$fHasFieldsTYPEField$fHasIsNullableka$fHasIsNullableTYPEMaybe$fHasPsqlTypeTYPEDay$fHasPsqlTypeTYPEInt$fHasPsqlTypeTYPEText$fHasPsqlTypeTYPEMaybe$fHasPsqlTypesTYPE:>$fHasPsqlTypesTYPEField $fFromRowOnly $fFromRow:> $fToRow() $fToRowOnly $fToRow:> $fToRowWrap $fFromRowWrap$fIsStringPsqlType StripUnitFlatten ConditionAliasAsghc-prim GHC.TypesInt symbolValbase GHC.TypeLitsWrap.postgresql-simple-0.6.2-BN6We3ZudWpEMaySprWrWX Database.PostgreSQL.Simple.ToRow"Database.PostgreSQL.Simple.FromRow