GP      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                                                                                   ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q RSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None +23468:<HM9HWT Group (c) 2004, haskelldb-users@lists.sourceforge.net BSD-style%haskelldb-users@lists.sourceforge.net experimental non-portableNone +23468:<HMGeneralization of  and ! to any separating character set.     9HWT Group (c) 2003, haskelldb-users@lists.sourceforge.net BSD-style%haskelldb-users@lists.sourceforge.net experimental non-portableNone +23468:<HM Shrinks the h supplied if it can do so without truncating the list. Returns Nothing if the list inside was to long.Takes a  add grows it size.Takes a  and return the list inside.Returns the length of a .$Takes a list and transforms it to a 0. If the list doesn't fit, Nothing is returned.$Takes a list and transforms it to a X. If the list doesn'n fit, the list is truncated to make it fit into the bounded list. !"#$%&'()*+,-./0123456789 : ; < = >?@ABCDEFGHIJKLMNOP Q!R"S#T$U%V&W'X(Y)Z*[+\,]-^._/`0a1b2c3d4e5f6g7h8i9j:k;l<m=n>o?p@qArBsCtDuEvFwGxHyIzJ{K|L}M~NOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~           !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~           ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  !"#$%&'()*+,-./0123456789 : ; < = >?@ABCDEFGHIJKLMNOP Q!R"S#T$U%V&W'X(Y)Z*[+\,]-^._/`0a1b2c3d4e5f6g7h8i9j:k;l<m=n>o?p@qArBsCtDuEvFwGxHyIzJ{K|L}M~NOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~           !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~9HWT Group (c) 2003, haskelldb-users@lists.sourceforge.net BSD-style%haskelldb-users@lists.sourceforge.net experimental non-portableNone +23468:<HM !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      ! !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !!      ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !mDaan Leijen (c) 1999, daan@cs.uu.nl HWT Group (c) 2003, haskelldb-users@lists.sourceforge.net BSD-style%haskelldb-users@lists.sourceforge.net experimental non-portableNone +23468:<HM".Data type representing the SQL DROP statement.#Delete a table named SqlTable$Delete a database%$Data type for SQL CREATE statements.&Create a table.'Create a database($Data type for SQL INSERT statements.+$Data type for SQL DELETE statements.-$Data type for SQL UPDATE statements./Expressions in SQL statements.83Aggregate functions separate from normal functions.>$Data type for SQL SELECT statements.? Empty select.@Select a whole table.ABinary relational operatorCDISTINCT, ALL etc.DresultEFROMFWHEREGGROUP BYHORDER BYI TOP n, etc.T!A valid SQL name for a parameter.WTransform a SqlSelect value.XTransform a SqlExpr value.8"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY8"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY8VUTQSRMPON>BA@?CDEFGHI-.+,(*)%'&"$#/=<;:9876543210JLKYXW"$#%'&(*)+,-./=<;:9876543210> BA@?CDEFGHIJLKMPONQSRTUVWXYmDaan Leijen (c) 1999, daan@cs.uu.nl HWT Group (c) 2003, haskelldb-users@lists.sourceforge.net BSD-style%haskelldb-users@lists.sourceforge.net experimental non-portableNone +23468:<HMZPretty prints a >[Pretty prints a -\Pretty prints a +^Pretty prints a %. _Pretty prints a ".`Pretty prints a /Z[\]^_`Z[\]^_`Z[\]^_`Z[\]^_` mDaan Leijen (c) 1999, daan@cs.uu.nl HWT Group (c) 2003, haskelldb-users@lists.sourceforge.net BSD-style%haskelldb-users@lists.sourceforge.net experimental non portableNone +23468:<HM used for hacking in custom SQLrepresents a default value#Cast an expression to a given type.kCreates a projection of some attributes while keeping all other attributes in the relation visible too. +Takes the cartesian product of two queries..Returns the schema (the attributes) of a query5Returns a one-to-one association of a schema. ie. assocFromScheme ["name","city"] becomes: 4[("name",AttrExpr "name"), ("city",AttrExpr "city")](Returns all attributes in an expression.9Returns all attributes in a list of ordering expressions.,Substitute attribute names in an expression.iDetermines if a primitive expression represents a constant or is an expression only involving constants.Fold on Fold on eabcdefghijklmnopqrstuvwxyz{|}~cabcdefghijklmnopqrstuvwxyz{|}~cr~}|{zyxwvutslqponmakjihgfedcba kjihgfedcblqponmr~}|{zyxwvuts  mDaan Leijen (c) 1999, daan@cs.uu.nl HWT Group (c) 2003, haskelldb-users@lists.sourceforge.net BSD-style%haskelldb-users@lists.sourceforge.net experimental non portableNone +23468:<HM Optimize a PrimQueryOptimize a set of criteria.8Hacks needed by some back-ends. FIXME: this is silly.mHACK: All fields that we order by must also be in the result in PostgreSQL, since we use SELECT DISTINCT.*Remove unused attributes from projections.WDetermines if the given column (attribute/expression pair) exists in the scheme given. Remove unused parts of the queryCollapse adjacent projections:Push restrictions down through projections and binary ops.OAll live attributes (i.e. all attributes that are in the result of the query)        9HWT Group (c) 2003, haskelldb-users@lists.sourceforge.net BSD-style%haskelldb-users@lists.sourceforge.net experimental non-portableNone +23468:<HMIConvert a list of labels and strins representating values to a record.;Convert a record to a list of label names and field values. &Sets the value of a field in a record.Class which does the actual work of getting the value of a field from a record. FIXME: would like the dependency f r -> a here, but that makes Hugs complain about conflicting instaces(Gets the value of a field from a record.Field selection operator. It is overloaded so that users (read HaskellDB) can redefine it for things with phantom record types.Concatenates two records. The record r has the field f if there is an instance of  HasField f r.Class for field labels.Gets the name of the label.>The type used for records. This is a function that takes a - so that the user does not have to put a  at the end of every record.uConstructor that adds a field to a record. f is the field tag, a is the field value and b is the rest of the record.The empty record.1Creates one-field record from a label and a value9Adds the field from a one-field record to another record.The empty record%Get the label name of a record entry.=  Field labelNew field valueRecord New record Field labelRecord  Field valueLabelValue New record Field to addRest of record New recordDummy to get return type right !"#$%&'()*+,-./0123  !"#$%&'()*+,-./012  mDaan Leijen (c) 1999, daan@cs.uu.nl HWT Group (c) 2003, haskelldb-users@lists.sourceforge.net BSD-style%haskelldb-users@lists.sourceforge.net experimental non portableNone +23468:<HMOWConverts records w/o Expr (usually from database queries) to records with Expr types. 3(Used to limit variable argument form of func to only take Expr types, and ignore ExprAggr types./Used to implement variable length arguments to func, below.4Class which can convert BoundedStrings to normal strings, even inside type constructors. Useful when a field is defined as a BoundedString (e.g. "Expr BStr10" or "Expr (Maybe BStr20)") but it needs to be used in an expression context. The example below illustrates a table with at least two fields, strField and bStrField. The first is defined as containing strings, the second as containing strings up to 10 characters long. The toStrj function must be used to convert the bStrField into the appropriate type for projecting as the strField: ktype SomeTable = (RecCons StrField (Expr String) (RecCons BStrField (Expr BStr10) ... )) ,someTable :: Table SomeTable someTable = ... strField :: Attr StrField String strField = ... bstrField :: Attr BStrField (BStr10) bstrField = ... query = do t <- table someTable project $ strField << toStr $ t ! bstrField*Convert a bounded string to a real string.XHelper class which gives a polymorphic copy function that can turn a Rel into a Record.'Class of records that can be used with .. All all the values must be instances of ( for the record to be an instance of .+Class of expressions that can be used with .'Class of records that can be used with insert.. All all the values must be instances of 5( for the record to be an instance of .5+Class of expressions that can be used with insert.Class of expression types.Get the underlying untyped .6LA Query monad provides unique names (aliases) and constructs a PrimQuery.Typed attributespBasic tables, contains table name and an association from attributes to attribute names in the real table. The type of default expressions.Type of aggregate expressions.:Type of normal expressions, contains the untyped PrimExpr.EType of relations, contains the attributes of the relation and an 7/ to which the attributes are renamed in the .PCreates a record field. Similar to '(.=.)', but gets the field label from an .UConvenience operator for constructing records of constants. Useful primarily with insert. f <<- x is the same as f << constant xCreates a single-field record from an attribute and a table. Useful for building projections that will re-use the same attribute name.  copy attr tbl is equivalent to: attr .=. (tbl .!. attr)~Copies all columns in the relation given. Useful for appending the remaining columns in a table to a projection. For example: B query = do tbl <- table some_table project $ copyAll tbl2will add all columns in "some_table" to the query./Specifies a subset of the columns in the table.KRestricts the records to only those who evaluates the expression to True.hRestricts the relation given to only return unique records. Upshot is all projected attributes will be grouped.IReturn all records which are present in at least one of the relations. UNION ALL7Return all records which are present in both relations. Not in SQL92.[Return all records from the first relation that are not present in the second relation.)Return all records from a specific table.Get the name of a table. *For queries against fake tables, such as 4'information_schema.information_schema_catalog_name'. Useful for constructing queries that contain constant data (and do not select from columns) but need a table to select from. .Create a named parameter with a default value. 3Create an anonymous parameter with a default value. 'Equality comparison on Exprs, = in SQL.Inequality on Exprs, <> in SQL.The inverse of an Expr Bool."Logical and" on  , AND in SQL."Logical or" on  . OR in SQL.The HaskellDB counterpart to the SQL LIKE keyword. In the expresions, % is a wildcard representing any characters in the same position relavtive to the given characters and _ is a wildcard representing one character e.g. .like (constant "ABCDEFFF") (constant "AB%F_F") is true while +like (constant "ABCDEF") (constant "AC%F")  is false.Note that SQL92 does not specify whether LIKE is case-sensitive or not. Different database systems implement this differently.{Returns true if the value of the first operand is equal to the value of any of the expressions in the list operand. 5Produces the concatenation of two String-expressions.%Concatenates two String-expressions. Gets the length of a string.Addition Subtraction MultiplicationDivisionModulo 'Returns true if the expression is Null.!The inverse of  4, returns false if the expression supplied is Null."Creates a conditional expression. Returns the value of the expression corresponding to the first true condition. If none of the conditions are true, the value of the else-expression is returned.#Can be used to define SQL functions which will appear in queries. Each argument for the function is specified by its own Expr value. Examples include: F lower :: Expr a -> Expr (Maybe String) lower str = func "lower" strVThe arguments to the function do not have to be Expr if they can be converted to Expr: - data DatePart = Day | Century deriving Show   datePart :: DatePart -> Expr (Maybe CalendarTime) -> Expr (Maybe Int) datePart date col = func "date_part" (constant $ show date) col5Aggregate functions can also be defined. For example: C every :: Expr Bool -> ExprAggr Bool every col = func "every" colAggregates are implemented to always take one argument, so any attempt to define an aggregate with any more or less arguments will result in an error.oNote that type signatures are usually required for each function defined, unless the arguments can be inferred.$1The default value of the column. Only works with insert.%3Creates a constant expression from a haskell value.&7Inserts the string literally - no escaping, no quoting.'Takes a default value a and a nullable value. If the value is NULL, the default value is returned, otherwise the value itself is returned. Simliar to  fromMaybe(FSimilar to fromNull, but takes a value argument rather than an Expr.);Turn constant data into a nullable expression. Same as constant . Just*;Turn constant data into a nullable expression. Same as constant . Just+Represents a null value., Generates a CASTZ expression for the given expression, using the argument given as the destination type. -jCoerce the type of an expression to another type. Does not affect the actual primitive value - only the phantom type..1Returns the number of records (=rows) in a query./"Returns the total sum of a column.0&Returns the highest value of a column.1%Returns the lowest value of a column.2 Returns the average of a column.3+Returns the standard deviation of a column.5*Returns the standard variance of a column.7Return the n topmost records.8Skip the n topmost records.9$Use this together with the function ; to order the results of a query in ascending order. Takes a relation and an attribute of that relation, which is used for the ordering.:$Use this together with the function ; to order the results of a query in descending order. Takes a relation and an attribute of that relation, which is used for the ordering.;1Order the results of a query. Use this with the 9 or : functions.?Allows a subquery to be created between another query and this query. Normally query definition is associative and query definition is interleaved. This combinator ensures the given query is added as a whole piece.8Field selection operator. It is overloaded to work for both relations in a query and the result of a query. That is, it corresponds to both  and !. from the original HaskellDB. An overloaded operator was selected because users (and the developers) always forgot to use !. instead of ! on query results.93:4;5<67=Label Expression New record Field label Field value New record>   Name of the parameter. Default value for the parameter. Default value.?@ A !"%A list of conditions and expressions.Else-expression. #$%&'"Default value (to be returned for B)A nullable expression()*+,Destination type.Source expression.-Source expressionDestination type.C./012345678D9:;<=>?EFGH@AIJKLMNOPQRSTUVWXYZ[\]^_`a8bcdefghijklmnf      !"#$%&'()*+,-./0123456789:;<=>?@Af  !'(%*+)  #,-./012&34569:;78"$=><?  A@93:4;5<67=>    ?@ A !"#$%&'()*+,-C./012345678D9:;<=>?EFGH@AIJKLMNOPQRSTUVWXYZ[\]^_`a8bcdefghijklmn  9HWT Group (c) 2003, haskelldb-users@lists.sourceforge.net BSD-style%haskelldb-users@lists.sourceforge.net experimental non-portableNone *+23468:<HMBClass which returns a list of field descriptions. Gets the descriptions of all columns in a Record/query. Most useful when the columns associated with each field in a (Rel r) type must be recovered. Note that this occurs at the type level only and no values are inspected.D9Class which retrieves a field description from a given type. Instances are provided for most concrete types. Instances for Maybe automatically make the field nullable, and instances for all (Expr a) types where a has an ExprType instance allows type information to be recovered from a given column expression.FA database column typeO The type and nullable flag of a database columnQGiven a query, returns a list of the field names and their types used by the query. Useful for recovering field information once a query has been built up. BCDEFGHIJKLMNOPQopqrstuvwxyz{|}BCDEFGHIJKLMNOPQOFNMLKJIHGPDEBCQBCDEFNMLKJIHGOPQopqrstuvwxyz{|}mDaan Leijen (c) 1999, daan@cs.uu.nl HWT Group (c) 2003, haskelldb-users@lists.sourceforge.net BSD-style%haskelldb-users@lists.sourceforge.net experimental non-portableNone +23468:<HM`QEnsures non-aggregate expressions in the select are included in group by clause.gdTurn a string into a quoted string. Quote characters and any escaping are handled by this function.RSTUVWXYZ[\]^_`abcdefgRSTUVWXYZ[\]^_`abcdefgRSTUVWXYZ[\]^_`abcdefgRSTUVWXYZ[\]^_`abcdefgmDaan Leijen (c) 1999, daan@cs.uu.nl HWT Group (c) 2003, haskelldb-users@lists.sourceforge.net BSD-style%haskelldb-users@lists.sourceforge.net experimental non-portableNone +23468:<HM k Creates a > based on the 4 supplied. Corresponds to the SQL statement SELECT.oEnsures the groupby value on the SqlSelect either preserves existing grouping or that it will group on all columns (i.e, Mark == All).sUMake sure our SqlSelect statement is really a SqlSelect and not another constructor.t Creates a -I. Corresponds to the SQL statement UPDATE which updates data in a table.u Creates a (. v Creates a (\. Corresponds to the SQL statement INSERT INTO which is used to insert new rows in a table.w Creates a +I. Corresponds to the SQL statement DELETE which deletes rows in a table.xUse this to create a %] data type corresponding to the SQL statement CREATE DATABASE which creates a new database.yUse this to create a %Q data type corresponding to the SQL statement CREATE which creates a new table.z Creates a "F that delete the database with the name given as the first argument.{ Creates a "7 that delete the database named in the first argument.~[Quote a string and escape characters that need escaping FIXME: this is backend dependent$Escape characters that need escaping#hijklmnopqrstName of the table to update.=Conditions which must all be true for a row to be updated.Update the data with this.uName of the tableWhat to insert.vName of the tableWhat to insertwName of the table;Criteria which must all be true for a row to be deleted.xname of the database.y name of the table to be created.Column descriptionsz{|}~~hijklmnopqrstuvwxyz{|}~hiktwuvxyz{lmnpqor|}j~s hijklmnopqrstuvwxyz{|}~~%haskelldb-users@lists.sourceforge.net BSD-style%haskelldb-users@lists.sourceforge.net experimental non portableNone +23468:<HM 4Take a query, turn it into a SqlSelect and print it.4Take a query, turn it into a SqlSelect and print it.4Take a query, turn it into a SqlSelect and print it.HTake a query, turn it into a SqlSelect and print it, with optimizations.AOptimize the query and pretty print the primitive representation.BPretty print the primitive representation of an unoptimized query.Pretty print a PrimQuery value.MTransform a PrimQuery according to the function given, then pretty print it.Nesting level.4Transformation function to apply to PrimQuery first.PrimQuery to print.2Function to turn primitive query into a SqlSelect.)Transformation to apply to query, if any.+The primitive query to transform and print.Bjorn Bringert 2006 BSD-style%haskelldb-users@lists.sourceforge.net experimental non-portableNone +23468:<HMBjorn Bringert 2006 BSD-style%haskelldb-users@lists.sourceforge.net experimental non-portableNone +23468:<HMmDaan Leijen (c) 1999, daan@cs.uu.nl HWT Group (c) 2003, haskelldb-users@lists.sourceforge.net BSD-style%haskelldb-users@lists.sourceforge.net experimental non-portableNone +23468:<HMCreate a result record.|Functions for getting values of a given type. Database drivers need to implement these functions and pass this record to  when getting query results."All these functions should return B if the value is NULL.Get a  value.Get an  value.Get an  value.Get a  value. Get a  value.Get a  value.Get a  value.kThe (!.) operator selects over returned records from the database (= rows) Non-overloaded version of . For backwards compatibility.1Get a non-NULL value. Fails if the value is NULL.performs a query on a database(Inserts values from a query into a tableInserts a record into a tabledeletes a bunch of records Updates recordsList all tables in the database3List all columns in a table, along with their typesiPerforms some database action in a transaction. If no exception is thrown, the changes are committed. (Commit any pending data to the database._Is not very useful. You need to be root to use it. We suggest you solve this in another way>:Driver functions for getting values of different types.-Phantom argument to the the return type rightFields to get.@Driver-specific result data (for example a Statement object)Result record. The database The table to delete records from*Predicate used to select records to delete The databaseThe table to update*Predicate used to select records to update(Function used to modify selected recordsDatabase#Names of all tables in the databaseDatabase1Name of the tables whose columns are to be listed"Name and type info for each columnDatabase Action to runDatabaseDatabaseName of database to create DatabaseName of table to create The fields of the tableDatabaseName of database to dropDatabaseName of table to drop**& 9HWT Group (c) 2004, haskelldb-users@lists.sourceforge.net BSD-style%haskelldb-users@lists.sourceforge.net experimental non-portableNone +23468:<HMUse Bounded Strings?DConversion routines from Database identifiers to Haskell identifiersThe name of this columnThe description of this columnThe name of the tableThe columns in this table$Defines a database layout, top levelThe name of the database3Any options (i.e whether to use Bounded Strings)Tables this database containscCreates a valid declaration of a DBInfo. The variable name will be the same as the database namePretty prints a DBInfoDoes a final "touching up" of a DBInfo before it is used by i.e DBDirect. This converts any Bounded Strings to ordinary strings if that flag is set.)Converts all BStrings to ordinary StringsCreates a DBInfoCreates a TInfoCreates a CInfo2Constructs a DBInfo that doesn't cause nameclashes5Makes a table name unique among all other table names5Makes a field name unique among all other field names%makes the dbname unique in a database9makes a supplied name unique in a table and its subfields'makes a supplied name unique in a field0Gives a String a new name, according to its typeoCase insensitive String comparison (there probably is a standard function for this, there ought to be anyway%The name of the DatabaseOptionsTablesThe generated DBInfoThe table nameColumns The generated TInfoThe column nameWhat the column containsThe generated CInfoEither a Table or a Field The new name9HWT Group (c) 2004, haskelldb-users@lists.sourceforge.net BSD-style%haskelldb-users@lists.sourceforge.net experimental non-portableNone +23468:<HMCommon header for all files4Adds LANGUAGE pragrams to the top of generated filesYAdds an appropriate -fcontext-stackXX OPTIONS pragma at the top of the generated file.nAll imports generated files have dependencies on. Nowadays, this should only be Database.HaskellDB.DBLayout?Create module files in the given directory for the given DBInfoCreates modules"Make a filename from a module nameELike createDirectory, but creates all the directories in the path.Converts a database specification to a set of module names and module contents. The first element of the returned list is the top-level module.Does the actual conversion workMakes a module from a TInfoPretty prints a TableInfo"Pretty prints a list of ColumnInfo,Pretty prints the type field in a ColumnInfo-Pretty prints the value field in a ColumnInfoPretty prints Field definitions.Extracts all the column names from a TableInfo.Extracts all the column types from a TableInfo3Combines the results of columnNames and columnTypesbase directorytop-level module nameBase directory?Name of directory and top-level module for the database modules Module names and module contentsTop level module nameTop-level module name*list of module name, module contents pairsThe name of our main moduleModule name and module contents9HWT Group (c) 2004, haskelldb-users@lists.sourceforge.net BSD-style%haskelldb-users@lists.sourceforge.net experimentalportableNone +23468:<HM<Connects to a database and generates a specification from itUse bounded strings?Bstyle of generated Haskell identifiers, cOLUMN_NAME vs. columnName!the name our database should havethe database connectionreturn a DBInfo9HWT Group (c) 2004, haskelldb-users@lists.sourceforge.net BSD-style%haskelldb-users@lists.sourceforge.net experimental non-portableNone +23468:<HM^Converts a DBInfo to a real life Database, note that the database must exist for this to work'Create a database table specified by a . A DatabaseThe DBInfo to generate from9HWT Group (c) 2004, haskelldb-users@lists.sourceforge.net BSD-style%haskelldb-users@lists.sourceforge.net experimental non-portableNone +23468:<HM'FGHIJKLMNO'OFNMLKJIHG9HWT Group (c) 2003, haskelldb-users@lists.sourceforge.net BSD-style%haskelldb-users@lists.sourceforge.net experimental non-portableNone +23468:<HM)Constructs a table entry from a field tagMake an  for a field. Field tag Field tag7 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      ! FGHIJKLMNO Bjorn Bringert 2006 BSD-style%haskelldb-users@lists.sourceforge.net experimental non-portableNone +23468:<HM.Anders Hockersten (c), chucky@dtek.chalmers.se BSD-stylechucky@dtek.chalmers.se experimentalportableNone +23468:<HM1Interface which drivers should implement. The  function takes some driver specific name, value pairs use to setup the database connection, and a database action to run. i lists all required options with a short description, that is printed as help in the DBDirect program.7Default dummy driver, real drivers should overload thisXCan be used by drivers to get option values from the given list of name, value pairs.|Can be used by drivers to get option values from the given list of name, value pairs. It is intended for use with the  value of the driver.Gets an R} from the "generator" option in the given list. Currently available generators: "mysql", "postgresql", "sqlite", "default" names of options to get options givena list of the same length as the first argument with the values of each option. Fails in the given monad if any options is not found.(names and descriptions of options to get options givena list of the same length as the first argument with the values of each option. Fails in the given monad if any options is not found. options givenpAn SQL generator. If there was no "generator" option, the default is used. Fails if the generator is unknown  mDaan Leijen (c) 1999, daan@cs.uu.nl HWT Group (c) 2003, haskelldb-users@lists.sourceforge.net BSD-style$"Justin Bailey" <jgbailey@gmail.com> experimental non portableNone +23468:<HMiRepresents a query parameter. Left parameters are indexed by position, while right parameters are named.Shows the optimized .Shows the unoptimized .Shows the optimized SQL query. Shows the unoptimized SQL query.%Get paramaters from a query in order.&Shows the optimized SQL for the query.]    !"#$%&'()*+,-./0123456789:;?]?  !'(%*+)  #,-&./01234569:;78"$Daan Leijen (c) 1999, daan@cs.uu.nl HWT Group (c) 2003, Bjorn Bringert (c) 2005-2006, bjorn@bringert.net BSD-style%haskelldb-users@lists.sourceforge.net experimentalportableNone +23468:<HMShows usage information  !"#$%&&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJIKKLLMNOPQRSTUVWXYZ[\]^_\`abcdefghijkljmnopq^rstuvwxyz{ | } ~                                                                                                                                                                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b cddefghijklmnopqrstuvwxyz{|}~ub9:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                               ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B  C D E F GHI J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~      {8`1haskelldb-2.2.4Database.HaskellDB.DriverAPIDatabase.HaskellDB.DBLayoutDatabase.HaskellDB.Version#Database.HaskellDB.DBSpec.PPHelpersDatabase.HaskellDB.BoundedList Database.HaskellDB.BoundedStringDatabase.HaskellDB.SqlDatabase.HaskellDB.Sql.PrintDatabase.HaskellDB.PrimQueryDatabase.HaskellDB.OptimizeDatabase.HaskellDB.HDBRecDatabase.HaskellDB.QueryDatabase.HaskellDB.FieldTypeDatabase.HaskellDB.Sql.GenerateDatabase.HaskellDB.Sql.DefaultDatabase.HaskellDB.PrintQueryDatabase.HaskellDB.Sql.MySQLDatabase.HaskellDB.Sql.SQLiteDatabase.HaskellDB.Database Database.HaskellDB.DBSpec.DBInfo*Database.HaskellDB.DBSpec.DBSpecToDBDirect*Database.HaskellDB.DBSpec.DatabaseToDBSpec*Database.HaskellDB.DBSpec.DBSpecToDatabase!Database.HaskellDB.Sql.PostgreSQLDatabase.HaskellDBDatabase.HaskellDB.DBDirectDatabase.HaskellDB.DBSpectransformers-0.4.1.0Control.Monad.IO.ClassMonadIOold-time-1.1.0.2 System.Time CalendarTime time-1.4.2Data.Time.LocalTime.LocalTime LocalTimeversionMakeIdentifiers moduleName identifiertoTypenewline ppCommentfileNamemkIdentPreservingmkIdentCamelCasetoLowerCamelCasetoUpperCamelCasesplit checkChars checkKeyword checkUpper checkLower checkUpperDef checkLowerDef BoundedListN65535N255N254N253N252N251N250N249N248N247N246N245N244N243N242N241N240N239N238N237N236N235N234N233N232N231N230N229N228N227N226N225N224N223N222N221N220N219N218N217N216N215N214N213N212N211N210N209N208N207N206N205N204N203N202N201N200N199N198N197N196N195N194N193N192N191N190N189N188N187N186N185N184N183N182N181N180N179N178N177N176N175N174N173N172N171N170N169N168N167N166N165N164N163N162N161N160N159N158N157N156N155N154N153N152N151N150N149N148N147N146N145N144N143N142N141N140N139N138N137N136N135N134N133N132N131N130N129N128N127N126N125N124N123N122N121N120N119N118N117N116N115N114N113N112N111N110N109N108N107N106N105N104N103N102N101N100N99N98N97N96N95N94N93N92N91N90N89N88N87N86N85N84N83N82N81N80N79N78N77N76N75N74N73N72N71N70N69N68N67N66N65N64N63N62N61N60N59N58N57N56N55N54N53N52N51N50N49N48N47N46N45N44N43N42N41N40N39N38N37N36N35N34N33N32N31N30N29N28N27N26N25N24N23N22N21N20N19N18N17N16N15N14N13N12N11N10N9N8N7N6N5N4N3N2N1N0Sizeshrinkgrow fromBounded listBound toBoundedtrunc BStr65535BStr255BStr254BStr253BStr252BStr251BStr250BStr249BStr248BStr247BStr246BStr245BStr244BStr243BStr242BStr241BStr240BStr239BStr238BStr237BStr236BStr235BStr234BStr233BStr232BStr231BStr230BStr229BStr228BStr227BStr226BStr225BStr224BStr223BStr222BStr221BStr220BStr219BStr218BStr217BStr216BStr215BStr214BStr213BStr212BStr211BStr210BStr209BStr208BStr207BStr206BStr205BStr204BStr203BStr202BStr201BStr200BStr199BStr198BStr197BStr196BStr195BStr194BStr193BStr192BStr191BStr190BStr189BStr188BStr187BStr186BStr185BStr184BStr183BStr182BStr181BStr180BStr179BStr178BStr177BStr176BStr175BStr174BStr173BStr172BStr171BStr170BStr169BStr168BStr167BStr166BStr165BStr164BStr163BStr162BStr161BStr160BStr159BStr158BStr157BStr156BStr155BStr154BStr153BStr152BStr151BStr150BStr149BStr148BStr147BStr146BStr145BStr144BStr143BStr142BStr141BStr140BStr139BStr138BStr137BStr136BStr135BStr134BStr133BStr132BStr131BStr130BStr129BStr128BStr127BStr126BStr125BStr124BStr123BStr122BStr121BStr120BStr119BStr118BStr117BStr116BStr115BStr114BStr113BStr112BStr111BStr110BStr109BStr108BStr107BStr106BStr105BStr104BStr103BStr102BStr101BStr100BStr99BStr98BStr97BStr96BStr95BStr94BStr93BStr92BStr91BStr90BStr89BStr88BStr87BStr86BStr85BStr84BStr83BStr82BStr81BStr80BStr79BStr78BStr77BStr76BStr75BStr74BStr73BStr72BStr71BStr70BStr69BStr68BStr67BStr66BStr65BStr64BStr63BStr62BStr61BStr60BStr59BStr58BStr57BStr56BStr55BStr54BStr53BStr52BStr51BStr50BStr49BStr48BStr47BStr46BStr45BStr44BStr43BStr42BStr41BStr40BStr39BStr38BStr37BStr36BStr35BStr34BStr33BStr32BStr31BStr30BStr29BStr28BStr27BStr26BStr25BStr24BStr23BStr22BStr21BStr20BStr19BStr18BStr17BStr16BStr15BStr14BStr13BStr12BStr11BStr10BStr9BStr8BStr7BStr6BStr5BStr4BStr3BStr2BStr1BStr0 BoundedStringSqlDrop SqlDropTable SqlDropDB SqlCreateSqlCreateTable SqlCreateDB SqlInsertSqlInsertQuery SqlDelete SqlUpdateSqlExpr CastSqlExpr ParensSqlExprPlaceHolderSqlExpr ParamSqlExpr ExistsSqlExpr ListSqlExpr CaseSqlExpr ConstSqlExprAggrFunSqlExpr FunSqlExprPostfixSqlExpr PrefixSqlExpr BinSqlExpr ColumnSqlExpr SqlSelectSqlEmptySqlTableSqlBinoptionsattrstablescriteriagroupbyorderbyextraMarkColumnsAllSqlTypeSqlType2SqlType1SqlOrderSqlDescSqlAscSqlName SqlColumn foldSqlSelect foldSqlExpr newSelectppSqlppUpdateppDeleteppInsertppCreateppDrop ppSqlExprAggrOp AggrOtherAggrVarPAggrVar AggrStdDevP AggrStdDevAggrMaxAggrMinAggrAvgAggrSum AggrCountUnOp UnOpOtherOpLength OpIsNotNullOpIsNullOpNotBinOpOpAsgOpBitXorOpBitOrOpBitAndOpBitNotOpModOpDivOpMulOpMinusOpPlusOpCatOpOtherOpInOpLikeOpOrOpAndOpNotEqOpGtEqOpGtOpLtEqOpLtOpEqLiteralOtherLitDateLit DoubleLit IntegerLit StringLitBoolLit DefaultLitNullLitPrimExprCastExprFunExpr ParamExprListExprCaseExpr ConstExprAggrExprUnExprBinExprAttrExprOrderOpOpDescOpAsc OrderExpr SpecialOpOffsetTopOrderRelOp DifferenceDivide IntersectUnionAllUnionTimes PrimQueryEmptySpecialBinaryGroupRestrictProject BaseTableAssocSchemeName Attribute TableNameextendtimes attributes attrInExpr attrInOrder substAttr isConstant isAggregate foldPrimQuery foldPrimExproptimizeoptimizeCriteria ReadRecRow readRecRow ShowRecRow showRecRow ShowLabels recordLabelsSetFieldSelect!RecCatrecCatHasFieldFieldTag fieldNameRecordRecConsRecNil.=.# emptyRecordsetField ToPrimExprsConstantRecordconstantRecord ShowConstant showConstantArgstoStrRelToRec ProjectRec ProjectExpr InsertRecExprCprimExprQueryAttrTable ExprDefaultExprAggrExprRel attributeName<<<<-copycopyAllselectprojectrestrictuniqueunionunionAll intersectdivideminustable tableNametableRec baseTable emptyTable attribute namedParamparam.==..<>..<..<=..>..>=._not.&&..||.like_incat.++._length.+..-..*../..%.isNullnotNull_casefunc_defaultconstantliteralfromNullfromVal constExprconstVal constNullcastcoercecount_sum_max_minavgstddevstddevPvariance variancePtopoffsetascdescorderunQueryrunQuery runQueryRelsubQuerylabelsexprs ExprTypesfromHaskellTypesExprTypefromHaskellType FieldTypeBStrT LocalTimeT CalendarTimeTBoolTDoubleTIntegerTIntTStringT FieldDesc toHaskellType queryFields SqlGeneratorsqlQuery sqlUpdate sqlDelete sqlInsertsqlInsertQuery sqlCreateDBsqlCreateTable sqlDropDB sqlDropTablesqlEmptysqlTable sqlProjectsqlGroup sqlRestrict sqlBinary sqlSpecialsqlExpr sqlLiteralsqlTypesqlQuotemkSqlGeneratordefaultSqlGeneratordefaultSqlTypedefaultSqlQuerydefaultSqlEmptydefaultSqlTabledefaultSqlProjectdefaultSqlGroupdefaultSqlRestrictdefaultSqlBinarydefaultSqlSpecial toSqlSelectdefaultSqlUpdatedefaultSqlInsertdefaultSqlInsertQuerydefaultSqlDeletedefaultSqlCreateDBdefaultSqlCreateTabledefaultSqlDropDBdefaultSqlDropTabledefaultSqlExprdefaultSqlLiteraldefaultSqlQuote ppSqlUnOptppSelect ppSelectUnOptppQuery ppQueryUnOptppPrim ppSqlSelect generatorGetValuegetValueGetRecgetRec GetInstances getStringgetInt getInteger getDoublegetBoolgetCalendarTime getLocalTimeDatabasedbQuerydbInsert dbInsertQuerydbDeletedbUpdatedbTables dbDescribe dbTransaction dbCreateDB dbCreateTabledbDropDB dbDropTabledbCommit!.query insertQueryinsertdeleteupdatedescribe transactioncommitcreateDB createTabledropDB dropTable DBOptions useBString makeIdentCInfocnamedescrTInfotnamecolsDBInfodbnameoptstbls dbInfoToDocppDBInfoppTInfoppCInfo ppDBOptions finalizeSpec makeDBSpec makeTInfo makeCInfoconstructNonClashingDBInfodbInfoToModuleFiles specToHDB dbToDBSpecdbSpecToDatabase tInfoToTable hdbMakeEntrymkAttrDriverInterfaceconnectrequiredOptions defaultdriver getOptionsgetAnnotatedOptions getGeneratorParam showQueryshowQueryUnOptshowSql showSqlUnOpt queryParamsdbdirectbase Data.ListwordslinesLLessEqLesssize listLength listBoundType$fEqBoundedList$fShowBoundedList $fLessaN65535$fLessN255N65535 $fSizeN65535 $fLessaN255$fLessN254N255 $fSizeN255 $fLessaN254$fLessN253N254 $fSizeN254 $fLessaN253$fLessN252N253 $fSizeN253 $fLessaN252$fLessN251N252 $fSizeN252 $fLessaN251$fLessN250N251 $fSizeN251 $fLessaN250$fLessN249N250 $fSizeN250 $fLessaN249$fLessN248N249 $fSizeN249 $fLessaN248$fLessN247N248 $fSizeN248 $fLessaN247$fLessN246N247 $fSizeN247 $fLessaN246$fLessN245N246 $fSizeN246 $fLessaN245$fLessN244N245 $fSizeN245 $fLessaN244$fLessN243N244 $fSizeN244 $fLessaN243$fLessN242N243 $fSizeN243 $fLessaN242$fLessN241N242 $fSizeN242 $fLessaN241$fLessN240N241 $fSizeN241 $fLessaN240$fLessN239N240 $fSizeN240 $fLessaN239$fLessN238N239 $fSizeN239 $fLessaN238$fLessN237N238 $fSizeN238 $fLessaN237$fLessN236N237 $fSizeN237 $fLessaN236$fLessN235N236 $fSizeN236 $fLessaN235$fLessN234N235 $fSizeN235 $fLessaN234$fLessN233N234 $fSizeN234 $fLessaN233$fLessN232N233 $fSizeN233 $fLessaN232$fLessN231N232 $fSizeN232 $fLessaN231$fLessN230N231 $fSizeN231 $fLessaN230$fLessN229N230 $fSizeN230 $fLessaN229$fLessN228N229 $fSizeN229 $fLessaN228$fLessN227N228 $fSizeN228 $fLessaN227$fLessN226N227 $fSizeN227 $fLessaN226$fLessN225N226 $fSizeN226 $fLessaN225$fLessN224N225 $fSizeN225 $fLessaN224$fLessN223N224 $fSizeN224 $fLessaN223$fLessN222N223 $fSizeN223 $fLessaN222$fLessN221N222 $fSizeN222 $fLessaN221$fLessN220N221 $fSizeN221 $fLessaN220$fLessN219N220 $fSizeN220 $fLessaN219$fLessN218N219 $fSizeN219 $fLessaN218$fLessN217N218 $fSizeN218 $fLessaN217$fLessN216N217 $fSizeN217 $fLessaN216$fLessN215N216 $fSizeN216 $fLessaN215$fLessN214N215 $fSizeN215 $fLessaN214$fLessN213N214 $fSizeN214 $fLessaN213$fLessN212N213 $fSizeN213 $fLessaN212$fLessN211N212 $fSizeN212 $fLessaN211$fLessN210N211 $fSizeN211 $fLessaN210$fLessN209N210 $fSizeN210 $fLessaN209$fLessN208N209 $fSizeN209 $fLessaN208$fLessN207N208 $fSizeN208 $fLessaN207$fLessN206N207 $fSizeN207 $fLessaN206$fLessN205N206 $fSizeN206 $fLessaN205$fLessN204N205 $fSizeN205 $fLessaN204$fLessN203N204 $fSizeN204 $fLessaN203$fLessN202N203 $fSizeN203 $fLessaN202$fLessN201N202 $fSizeN202 $fLessaN201$fLessN200N201 $fSizeN201 $fLessaN200$fLessN199N200 $fSizeN200 $fLessaN199$fLessN198N199 $fSizeN199 $fLessaN198$fLessN197N198 $fSizeN198 $fLessaN197$fLessN196N197 $fSizeN197 $fLessaN196$fLessN195N196 $fSizeN196 $fLessaN195$fLessN194N195 $fSizeN195 $fLessaN194$fLessN193N194 $fSizeN194 $fLessaN193$fLessN192N193 $fSizeN193 $fLessaN192$fLessN191N192 $fSizeN192 $fLessaN191$fLessN190N191 $fSizeN191 $fLessaN190$fLessN189N190 $fSizeN190 $fLessaN189$fLessN188N189 $fSizeN189 $fLessaN188$fLessN187N188 $fSizeN188 $fLessaN187$fLessN186N187 $fSizeN187 $fLessaN186$fLessN185N186 $fSizeN186 $fLessaN185$fLessN184N185 $fSizeN185 $fLessaN184$fLessN183N184 $fSizeN184 $fLessaN183$fLessN182N183 $fSizeN183 $fLessaN182$fLessN181N182 $fSizeN182 $fLessaN181$fLessN180N181 $fSizeN181 $fLessaN180$fLessN179N180 $fSizeN180 $fLessaN179$fLessN178N179 $fSizeN179 $fLessaN178$fLessN177N178 $fSizeN178 $fLessaN177$fLessN176N177 $fSizeN177 $fLessaN176$fLessN175N176 $fSizeN176 $fLessaN175$fLessN174N175 $fSizeN175 $fLessaN174$fLessN173N174 $fSizeN174 $fLessaN173$fLessN172N173 $fSizeN173 $fLessaN172$fLessN171N172 $fSizeN172 $fLessaN171$fLessN170N171 $fSizeN171 $fLessaN170$fLessN169N170 $fSizeN170 $fLessaN169$fLessN168N169 $fSizeN169 $fLessaN168$fLessN167N168 $fSizeN168 $fLessaN167$fLessN166N167 $fSizeN167 $fLessaN166$fLessN165N166 $fSizeN166 $fLessaN165$fLessN164N165 $fSizeN165 $fLessaN164$fLessN163N164 $fSizeN164 $fLessaN163$fLessN162N163 $fSizeN163 $fLessaN162$fLessN161N162 $fSizeN162 $fLessaN161$fLessN160N161 $fSizeN161 $fLessaN160$fLessN159N160 $fSizeN160 $fLessaN159$fLessN158N159 $fSizeN159 $fLessaN158$fLessN157N158 $fSizeN158 $fLessaN157$fLessN156N157 $fSizeN157 $fLessaN156$fLessN155N156 $fSizeN156 $fLessaN155$fLessN154N155 $fSizeN155 $fLessaN154$fLessN153N154 $fSizeN154 $fLessaN153$fLessN152N153 $fSizeN153 $fLessaN152$fLessN151N152 $fSizeN152 $fLessaN151$fLessN150N151 $fSizeN151 $fLessaN150$fLessN149N150 $fSizeN150 $fLessaN149$fLessN148N149 $fSizeN149 $fLessaN148$fLessN147N148 $fSizeN148 $fLessaN147$fLessN146N147 $fSizeN147 $fLessaN146$fLessN145N146 $fSizeN146 $fLessaN145$fLessN144N145 $fSizeN145 $fLessaN144$fLessN143N144 $fSizeN144 $fLessaN143$fLessN142N143 $fSizeN143 $fLessaN142$fLessN141N142 $fSizeN142 $fLessaN141$fLessN140N141 $fSizeN141 $fLessaN140$fLessN139N140 $fSizeN140 $fLessaN139$fLessN138N139 $fSizeN139 $fLessaN138$fLessN137N138 $fSizeN138 $fLessaN137$fLessN136N137 $fSizeN137 $fLessaN136$fLessN135N136 $fSizeN136 $fLessaN135$fLessN134N135 $fSizeN135 $fLessaN134$fLessN133N134 $fSizeN134 $fLessaN133$fLessN132N133 $fSizeN133 $fLessaN132$fLessN131N132 $fSizeN132 $fLessaN131$fLessN130N131 $fSizeN131 $fLessaN130$fLessN129N130 $fSizeN130 $fLessaN129$fLessN128N129 $fSizeN129 $fLessaN128$fLessN127N128 $fSizeN128 $fLessaN127$fLessN126N127 $fSizeN127 $fLessaN126$fLessN125N126 $fSizeN126 $fLessaN125$fLessN124N125 $fSizeN125 $fLessaN124$fLessN123N124 $fSizeN124 $fLessaN123$fLessN122N123 $fSizeN123 $fLessaN122$fLessN121N122 $fSizeN122 $fLessaN121$fLessN120N121 $fSizeN121 $fLessaN120$fLessN119N120 $fSizeN120 $fLessaN119$fLessN118N119 $fSizeN119 $fLessaN118$fLessN117N118 $fSizeN118 $fLessaN117$fLessN116N117 $fSizeN117 $fLessaN116$fLessN115N116 $fSizeN116 $fLessaN115$fLessN114N115 $fSizeN115 $fLessaN114$fLessN113N114 $fSizeN114 $fLessaN113$fLessN112N113 $fSizeN113 $fLessaN112$fLessN111N112 $fSizeN112 $fLessaN111$fLessN110N111 $fSizeN111 $fLessaN110$fLessN109N110 $fSizeN110 $fLessaN109$fLessN108N109 $fSizeN109 $fLessaN108$fLessN107N108 $fSizeN108 $fLessaN107$fLessN106N107 $fSizeN107 $fLessaN106$fLessN105N106 $fSizeN106 $fLessaN105$fLessN104N105 $fSizeN105 $fLessaN104$fLessN103N104 $fSizeN104 $fLessaN103$fLessN102N103 $fSizeN103 $fLessaN102$fLessN101N102 $fSizeN102 $fLessaN101$fLessN100N101 $fSizeN101 $fLessaN100 $fLessN99N100 $fSizeN100 $fLessaN99 $fLessN98N99 $fSizeN99 $fLessaN98 $fLessN97N98 $fSizeN98 $fLessaN97 $fLessN96N97 $fSizeN97 $fLessaN96 $fLessN95N96 $fSizeN96 $fLessaN95 $fLessN94N95 $fSizeN95 $fLessaN94 $fLessN93N94 $fSizeN94 $fLessaN93 $fLessN92N93 $fSizeN93 $fLessaN92 $fLessN91N92 $fSizeN92 $fLessaN91 $fLessN90N91 $fSizeN91 $fLessaN90 $fLessN89N90 $fSizeN90 $fLessaN89 $fLessN88N89 $fSizeN89 $fLessaN88 $fLessN87N88 $fSizeN88 $fLessaN87 $fLessN86N87 $fSizeN87 $fLessaN86 $fLessN85N86 $fSizeN86 $fLessaN85 $fLessN84N85 $fSizeN85 $fLessaN84 $fLessN83N84 $fSizeN84 $fLessaN83 $fLessN82N83 $fSizeN83 $fLessaN82 $fLessN81N82 $fSizeN82 $fLessaN81 $fLessN80N81 $fSizeN81 $fLessaN80 $fLessN79N80 $fSizeN80 $fLessaN79 $fLessN78N79 $fSizeN79 $fLessaN78 $fLessN77N78 $fSizeN78 $fLessaN77 $fLessN76N77 $fSizeN77 $fLessaN76 $fLessN75N76 $fSizeN76 $fLessaN75 $fLessN74N75 $fSizeN75 $fLessaN74 $fLessN73N74 $fSizeN74 $fLessaN73 $fLessN72N73 $fSizeN73 $fLessaN72 $fLessN71N72 $fSizeN72 $fLessaN71 $fLessN70N71 $fSizeN71 $fLessaN70 $fLessN69N70 $fSizeN70 $fLessaN69 $fLessN68N69 $fSizeN69 $fLessaN68 $fLessN67N68 $fSizeN68 $fLessaN67 $fLessN66N67 $fSizeN67 $fLessaN66 $fLessN65N66 $fSizeN66 $fLessaN65 $fLessN64N65 $fSizeN65 $fLessaN64 $fLessN63N64 $fSizeN64 $fLessaN63 $fLessN62N63 $fSizeN63 $fLessaN62 $fLessN61N62 $fSizeN62 $fLessaN61 $fLessN60N61 $fSizeN61 $fLessaN60 $fLessN59N60 $fSizeN60 $fLessaN59 $fLessN58N59 $fSizeN59 $fLessaN58 $fLessN57N58 $fSizeN58 $fLessaN57 $fLessN56N57 $fSizeN57 $fLessaN56 $fLessN55N56 $fSizeN56 $fLessaN55 $fLessN54N55 $fSizeN55 $fLessaN54 $fLessN53N54 $fSizeN54 $fLessaN53 $fLessN52N53 $fSizeN53 $fLessaN52 $fLessN51N52 $fSizeN52 $fLessaN51 $fLessN50N51 $fSizeN51 $fLessaN50 $fLessN49N50 $fSizeN50 $fLessaN49 $fLessN48N49 $fSizeN49 $fLessaN48 $fLessN47N48 $fSizeN48 $fLessaN47 $fLessN46N47 $fSizeN47 $fLessaN46 $fLessN45N46 $fSizeN46 $fLessaN45 $fLessN44N45 $fSizeN45 $fLessaN44 $fLessN43N44 $fSizeN44 $fLessaN43 $fLessN42N43 $fSizeN43 $fLessaN42 $fLessN41N42 $fSizeN42 $fLessaN41 $fLessN40N41 $fSizeN41 $fLessaN40 $fLessN39N40 $fSizeN40 $fLessaN39 $fLessN38N39 $fSizeN39 $fLessaN38 $fLessN37N38 $fSizeN38 $fLessaN37 $fLessN36N37 $fSizeN37 $fLessaN36 $fLessN35N36 $fSizeN36 $fLessaN35 $fLessN34N35 $fSizeN35 $fLessaN34 $fLessN33N34 $fSizeN34 $fLessaN33 $fLessN32N33 $fSizeN33 $fLessaN32 $fLessN31N32 $fSizeN32 $fLessaN31 $fLessN30N31 $fSizeN31 $fLessaN30 $fLessN29N30 $fSizeN30 $fLessaN29 $fLessN28N29 $fSizeN29 $fLessaN28 $fLessN27N28 $fSizeN28 $fLessaN27 $fLessN26N27 $fSizeN27 $fLessaN26 $fLessN25N26 $fSizeN26 $fLessaN25 $fLessN24N25 $fSizeN25 $fLessaN24 $fLessN23N24 $fSizeN24 $fLessaN23 $fLessN22N23 $fSizeN23 $fLessaN22 $fLessN21N22 $fSizeN22 $fLessaN21 $fLessN20N21 $fSizeN21 $fLessaN20 $fLessN19N20 $fSizeN20 $fLessaN19 $fLessN18N19 $fSizeN19 $fLessaN18 $fLessN17N18 $fSizeN18 $fLessaN17 $fLessN16N17 $fSizeN17 $fLessaN16 $fLessN15N16 $fSizeN16 $fLessaN15 $fLessN14N15 $fSizeN15 $fLessaN14 $fLessN13N14 $fSizeN14 $fLessaN13 $fLessN12N13 $fSizeN13 $fLessaN12 $fLessN11N12 $fSizeN12 $fLessaN11 $fLessN10N11 $fSizeN11 $fLessaN10 $fLessN9N10 $fSizeN10 $fLessaN9 $fLessN8N9$fSizeN9 $fLessaN8 $fLessN7N8$fSizeN8 $fLessaN7 $fLessN6N7$fSizeN7 $fLessaN6 $fLessN5N6$fSizeN6 $fLessaN5 $fLessN4N5$fSizeN5 $fLessaN4 $fLessN3N4$fSizeN4 $fLessaN3 $fLessN2N3$fSizeN3 $fLessaN2 $fLessN1N2$fSizeN2 $fLessN0N1$fSizeN1$fSizeN0 $fLessEqab $fLessEqaappAttrsppTablesppWhere ppGroupBy ppOrderByppAs ppSqlTypeNull ppSqlTypecommaHcommaVassocFromSchemecountAggregatehacksincludeOrderFieldsInSelect removeDeadisLive removeEmpty mergeProject pushRestrictremoveDschemeOf optimizeExprs optimizeExprexprTrue exprFalse exprIsTrue exprIsFalse setField_ SelectField selectField consFieldName labelType consFieldTypeshowsShowRecRow readRecEntryreadsReadRecRow $fReadRecCons $fReadRecNil $fRead(->)$fReadRecRowRecCons$fReadRecRowRecNil $fShowRecCons $fShowRecNil $fShow(->)$fShowRecRow(->)$fShowRecRowRecCons$fShowRecRowRecNil$fShowLabels(->)$fShowLabelsRecCons$fShowLabelsRecNil $fOrd(->)$fEq(->)$fSetFieldf(->)a$fSetFieldfRecConsa$fSetFieldfRecConsa0$fSelectFieldf(->)a$fSelectFieldfRecConsa$fSelectFieldfRecConsa0$fSelectl(->)a$fRecCat(->)(->)(->)$fRecCatRecConsr2RecCons$fRecCatRecNilrr$fHasFieldf(->)$fHasFieldfRecCons$fHasFieldfRecCons0IsExpr BStrToStr InsertExprQStateAlias$fSelectAttrRelExpr toPrimExprsarg_relToRecschemebinrelunopbinopnumop Data.MaybeNothing aggregateorderOpupdatePrimQueryupdatePrimQuery_newAliasfresh$fToPrimExprsRecCons$fToPrimExprsRecNil$fApplicativeQuery $fMonadQuery$fFunctorQuery$fConstantRecordRecConsRecCons$fConstantRecordRecNilRecNil$fConstantRecord(->)(->)$fShowConstantBoundedList$fShowConstantMaybe$fShowConstantCalendarTime$fShowConstantBool$fShowConstantDouble$fShowConstantInteger$fShowConstantInt$fShowConstant[] $fArgs(->) $fArgsExpr $fArgs(->)0 $fIsExprExpr $fIsExpr(->)$fBStrToStrExprExpr$fBStrToStrExprExpr0$fBStrToStrExprExpr1$fBStrToStrExprExpr2$fRelToRecRecCons$fRelToRecRecNil$fProjectRecRecConsRecCons$fProjectRecRecNilRecNil$fProjectExprExprAggr$fProjectExprExpr$fInsertRecRecConsRecCons$fInsertRecRecNilRecNil$fInsertExprExprDefault$fInsertExprExpr$fExprCExprDefault$fExprCExprAggr $fExprCExpr$fExprTypesRel$fExprTypes(->)$fExprTypesRecCons$fExprTypesRecNil$fExprTypeBoundedList$fExprTypeLocalTime$fExprTypeCalendarTime$fExprTypeDouble$fExprTypeInteger $fExprTypeInt $fExprType[]$fExprTypeBool $fExprTypeRel$fExprTypeExpr$fExprTypeMaybequoteescapeUnOpType UnOpPostfix UnOpPrefixUnOpFun toSqlOrder toSqlAssoctoSqlOp showBinOpsqlUnOp showAggrOpppPrimFnestingppPQppTableppAttrppOrder mySqlBinarymySqlDifferenceGHC.BaseStringghc-prim GHC.TypesInt integer-gmpGHC.Integer.TypeIntegerDoubleBool getNonNull recTailType$fGetValueMaybe$fGetValueMaybe0$fGetValueMaybe1$fGetValueMaybe2$fGetValueMaybe3$fGetValueMaybe4$fGetValueMaybe5$fGetValueMaybe6$fGetValueBoundedList$fGetValueLocalTime$fGetValueCalendarTime$fGetValueBool$fGetValueDouble$fGetValueInteger $fGetValueInt $fGetValue[]$fGetRecRecConsRecCons$fGetRecRecNilRecNil stripBStrmakeTblNamesUniquemakeFieldNamesUniquemakeDBNameUniquemakeTblNameUniquemakeFieldNameUniquenewName compNamesequalObjectNames$fShowDBOptionsheaderlanguageOptionscontextStackPragmaimports createModulesmoduleNameToFile createPathgenDocs tInfoToModule ppColumns ppColumnType ppColumnValueppField columnNames columnTypescolumnNamesTypes withPrefixreplacecreateDirIfNotExists ppTableType tInfoColspostgresqlSpecialpostgresqlLiteralpostgresqlTypepostgresqlExpr generators $fShowQueryshowHelpFlagsoptHelpoptBoundedStringsoptIdentifierStyle parseOptions exitWithError splitOptionssplit2