*      !"#$%&'()*+,-./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 G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b cdefghijklmnopqrstuvwxyz{|}~None non-portable experimental%haskelldb-users@lists.sourceforge.netNoneGeneralization of  and " to any separating character set.       non-portable experimental%haskelldb-users@lists.sourceforge.netNone Shrinks the  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 .  If the list doesn't fit, Nothing is returned. $Takes a list and transforms it to a .  If the list doesn'n fit, the list is truncated ' to make it fit into the bounded list.  !"#$%&'()*+,-./0123456789:;< = > ? @ ABCDEFGHIJKLMNOPQRS T!U"V#W$X%Y&Z'[(\)]*^+_,`-a.b/c0d1e2f3g4h5i6j7k8l9m:n;o<p=q>r?s@tAuBvCwDxEyFzG{H|I}J~KLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~           !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~           ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  !"#$%&'()*+,-./0123456789:;< = > ? @ ABCDEFGHIJKLMNOPQRS T!U"V#W$X%Y&Z'[(\)]*^+_,`-a.b/c0d1e2f3g4h5i6j7k8l9m:n;o<p=q>r?s@tAuBvCwDxEyFzG{H|I}J~KLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~           !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ non-portable experimental%haskelldb-users@lists.sourceforge.netNone !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~            ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       non-portable experimental%haskelldb-users@lists.sourceforge.netNone!/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. 74Aggregate functions separate from normal functions. =%Data type for SQL SELECT statements. >Empty select. ?Select a whole table. @Binary relational operator BDISTINCT, ALL etc. Cresult DFROM EWHERE F GROUP BY G ORDER BY H TOP n, etc. S"A valid SQL name for a parameter. VTransform a SqlSelect value. WTransform a SqlExpr value. 8!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX8!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX8UTSPRQLONM=A@?>BCDEFGH,-*+')($&%!#".<;:9876543210/IKJXWV!#"$&%')(*+,-.<;:9876543210/= A@?>BCDEFGHIKJLONMPRQSTUVWX non-portable experimental%haskelldb-users@lists.sourceforge.netNoneYPretty prints a = ZPretty prints a , [Pretty prints a * ]Pretty prints a $. ^Pretty prints a !. _Pretty prints a . YZ[\]^_YZ[\]^_YZ[\]^_YZ[\]^_ non portable experimental%haskelldb-users@lists.sourceforge.netNone used for hacking in custom SQL represents a default value $Cast an expression to a given type. .Creates 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 query &Returns a one-to-one association of a  schema. ie. assocFromScheme [name,city] becomes:  [(name ,AttrExpr name), (city ,AttrExpr city)] )Returns all attributes in an expression. :Returns all attributes in a list of ordering expressions. -Substitute attribute names in an expression. ;Determines if a primitive expression represents a constant / or is an expression only involving constants. Fold on  Fold on  c`abcdefghijklmnopqrstuvwxyz{|}~a`abcdefghijklmnopqrstuvwxyz{|}~aq~}|{zyxwvutsrkponml`jihgfedcba` jihgfedcbakponmlq~}|{zyxwvutsr   non portable experimental%haskelldb-users@lists.sourceforge.netNone Optimize a PrimQuery Optimize a set of criteria.  Hacks needed by some back-ends.  FIXME: this is silly. AHACK: All fields that we order by must also be in the result in - PostgreSQL, since we use SELECT DISTINCT. +Remove unused attributes from projections. )Determines if the given column (attribute/expression pair)  exists in the scheme given. !Remove unused parts of the query Collapse adjacent projections ;Push restrictions down through projections and binary ops. *All live attributes (i.e. all attributes & that are in the result of the query)   non-portable experimental%haskelldb-users@lists.sourceforge.netNone:Convert 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. 5 FIXME: would like the dependency f r -> a here, but 5 that makes Hugs complain about conflicting instaces  )Gets the value of a field from a record. 3Field selection operator. It is overloaded so that 5 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. +Constructor that adds a field to a record. K f is the field tag, a is the field value and b is the rest of the record. The empty record. 2Creates one-field record from a label and a value :Adds the field from a one-field record to another record. The empty record  &Get the label name of a record entry. =  Field label New field value Record  New record    Field label Record  Field value Label Value  New record  Field to add Rest of record  New record   Dummy to get return type right  !"#$%&'()*+,-.3      !"#$%&'()*+,-.  non portable experimental%haskelldb-users@lists.sourceforge.netNoneMConverts records w/o Expr (usually from database ' queries) to records with Expr types. /(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. 0:Class which can convert BoundedStrings to normal strings, 4 even inside type constructors. Useful when a field % is defined as a BoundedString (e.g.  Expr BStr10 or Expr (Maybe BStr20)) but O it needs to be used in an expression context. The example below illustrates a Q table with at least two fields, strField and bStrField. The first is defined as T containing strings, the second as containing strings up to 10 characters long. The  toStrN function must be used to convert the bStrField into the appropriate type for  projecting as the strField:  2 type 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. 'Helper class which gives a polymorphic 2 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 1 for the  record to be an instance of . 1+Class of expressions that can be used with insert. Class of expression types. Get the underlying untyped . 2.A Query monad provides unique names (aliases)  and constructs a PrimQuery. Typed attributes )Basic 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. +Type of relations, contains the attributes  of the relation and an 3 to which the ! attributes are renamed in the . Creates a record field.  Similar to '(.=.)'#, but gets the field label from an . <Convenience operator for constructing records of constants.  Useful primarily with insert.  f <<- x is the same as f << constant x DCreates a single-field record from an attribute and a table. Useful D 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:   query = do  tbl <- table some_table  project $ copyAll tbl will add all columns in  some_table to the query. 0Specifies a subset of the columns in the table. 7Restricts the records to only those who evaluates the  expression to True. CRestricts the relation given to only return unique records. Upshot % is all projected attributes will be grouped. 1Return all records which are present in at least  one of the relations. 8Return all records which are present in both relations. Not in SQL92. 9Return 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 D constructing queries that contain constant data (and do not select 0 from columns) but need a table to select from. /Create a named parameter with a default value. 4Create 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. 3The 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 1 _ is a wildcard representing one character e.g.  0 like (constant "ABCDEFFF") (constant "AB%F_F") is true while  - like (constant "ABCDEF") (constant "AC%F")  is false. HNote that SQL92 does not specify whether LIKE is case-sensitive or not. 8 Different database systems implement this differently. 2Returns true if the value of the first operand is 8 equal to the value of any of the expressions in the  list operand. 6Produces the concatenation of two String-expressions. &Concatenates two String-expressions. Gets the length of a string.  Addition  Subtraction Multiplication  Division Modulo (Returns true if the expression is Null. The inverse of , returns false % if the expression supplied is Null. "Creates a conditional expression. C Returns the value of the expression corresponding to the first D 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 Wappear in queries. Each argument for the function is specified by its own Expr value. Examples include:  * lower :: Expr a -> Expr (Maybe String)  lower str = func "lower" str AThe arguments to the function do not have to be Expr if they can be converted to Expr:  / data DatePart = Day | Century deriving Show  I datePart :: DatePart -> Expr (Maybe CalendarTime) -> Expr (Maybe Int) B datePart date col = func "date_part" (constant $ show date) col 6Aggregate functions can also be defined. For example:  ' every :: Expr Bool -> ExprAggr Bool  every col = func "every" col JAggregates are implemented to always take one argument, so any attempt to Mdefine an aggregate with any more or less arguments will result in an error. JNote 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. !4Creates a constant expression from a haskell value. "8Inserts the string literally - no escaping, no quoting. #DTakes a default value a and a nullable value. If the value is NULL, J the default value is returned, otherwise the value itself is returned.  Simliar to  fromMaybe $"Similar to fromNull, but takes a % value argument rather than an Expr. %0Turn constant data into a nullable expression.  Same as constant . Just &0Turn constant data into a nullable expression.  Same as constant . Just 'Represents a null value. ( Generates a CAST expression for the given 9 expression, using the argument given as the destination  type. )!Coerce the type of an expression - to another type. Does not affect the actual  primitive value - only the phantom type. *2Returns the number of records (=rows) in a query. +#Returns the total sum of a column. ,'Returns the highest value of a column. -&Returns the lowest value of a column. .!Returns the average of a column. /,Returns the standard deviation of a column. 1+Returns the standard variance of a column. 3Return the n topmost records. 4$Use this together with the function 6 to 2 order the results of a query in ascending order. ; Takes a relation and an attribute of that relation, which  is used for the ordering. 5$Use this together with the function 6 to 3 order the results of a query in descending order. ; Takes a relation and an attribute of that relation, which  is used for the ordering. 6Order the results of a query.  Use this with the 4 or 5 functions. ::Allows a subquery to be created between another query and K this query. Normally query definition is associative and query definition < is interleaved. This combinator ensures the given query is  added as a whole piece. 4<Field selection operator. It is overloaded to work for both 3 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. 5/60718239Label  Expression  New record  Field label  Field value  New record :Name of the parameter. !Default value for the parameter. Default value. ;<     =&A list of conditions and expressions. Else-expression.  !"#"Default value (to be returned for >) A nullable expression $%&'(Destination type. Source expression. )Source expression Destination type. ?*+,-./0123@456789:ABCD;<EFGHIJKLMNOPQRSTUVWXYZ[\4]^_`abcdefghid      !"#$%&'()*+,-./0123456789:;?@ABCDEFGHIJKLjklmnopqrstuvwxyz=>?@ABCDEFGHIJKLJAIHGFEDCBK?@=>L=>?@AIHGFEDCBJKLjklmnopqrstuvwxyz  non-portable experimental%haskelldb-users@lists.sourceforge.netNone[@Ensures non-aggregate expressions in the select are included in  group by clause. b5Turn a string into a quoted string. Quote characters 0 and any escaping are handled by this function. MNOPQRSTUVWXYZ[\]^_`abMNOPQRSTUVWXYZ[\]^_`abMNOPQRSTUVWXYZ[\]^_`abMNOPQRSTUVWXYZ[\]^_`ab non-portable experimental%haskelldb-users@lists.sourceforge.netNone f Creates a = based on the  supplied. * Corresponds to the SQL statement SELECT. jFEnsures the groupby value on the SqlSelect either preserves existing C grouping or that it will group on all columns (i.e, Mark == All). n@Make sure our SqlSelect statement is really a SqlSelect and not  another constructor. o Creates a ,#. Corresponds to the SQL statement ' UPDATE which updates data in a table. p Creates a '. q Creates a '#. Corresponds to the SQL statement : INSERT INTO which is used to insert new rows in a table. r Creates a *#. Corresponds to the SQL statement ' DELETE which deletes rows in a table. sUse this to create a $ data type corresponding to A the SQL statement CREATE DATABASE which creates a new database. tUse this to create a $ data type corresponding to 5 the SQL statement CREATE which creates a new table. u Creates a !$ that delete the database with the # name given as the first argument. v Creates a ! that delete the database named  in the first argument. {8Quote a string and escape characters that need escaping $ FIXME: this is backend dependent |%Escape characters that need escaping #}~cdefghijklmnoName of the table to update. ,Conditions which must all be true for a row  to be updated. Update the data with this. pName of the table What to insert. qName of the table What to insert rName of the table *Criteria which must all be true for a row  to be deleted. sname of the database. t!name of the table to be created. Column descriptions uvwxy{|cdefghijklmnopqrstuvwxycdforpqstuvghikljmwxeyn }~cdefghijklmnopqrstuvwxy{| non portable  experimental &haskelldb-users@lists.sourceforge.net None z5Take a query, turn it into a SqlSelect and print it. {5Take a query, turn it into a SqlSelect and print it. |5Take a query, turn it into a SqlSelect and print it. }ITake a query, turn it into a SqlSelect and print it, with optimizations. ~BOptimize the query and pretty print the primitive representation. CPretty print the primitive representation of an unoptimized query.  Pretty print a PrimQuery value. <Transform a PrimQuery according to the function given, then  pretty print it. Nesting level. z{|}~5Transformation function to apply to PrimQuery first. PrimQuery to print. 3Function to turn primitive query into a SqlSelect. *Transformation to apply to query, if any. ,The primitive query to transform and print. z{|}~~|}z{z{|}~ non-portable experimental%haskelldb-users@lists.sourceforge.netNone non-portable experimental%haskelldb-users@lists.sourceforge.netNone non-portable experimental%haskelldb-users@lists.sourceforge.netNoneCreate 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 > 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. 5The (!.) operator selects over returned records from  the database (= rows)  Non-overloaded version of . For backwards compatibility. 2Get a non-NULL value. Fails if the value is NULL. performs a query on a database )Inserts values from a query into a table Inserts a record into a table deletes a bunch of records Updates records  List all tables in the database 4List all columns in a table, along with their types KPerforms some database action in a transaction. If no exception is thrown,  the changes are committed. )Commit any pending data to the database. 4Is 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 right Fields 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 database The table to update +Predicate used to select records to update )Function used to modify selected records  Database $Names of all tables in the database  Database 2Name of the tables whose columns are to be listed #Name and type info for each column  Database Action to run  Database  Database Name of database to create  Database Name of table to create The fields of the table  Database Name of database to drop  Database Name of table to drop **& non-portable experimental%haskelldb-users@lists.sourceforge.netNoneUse Bounded Strings? EConversion routines from Database identifiers to Haskell identifiers The name of this column The description of this column The name of the table The columns in this table %Defines a database layout, top level The name of the database  Any options (i.e whether to use  Bounded Strings) Tables this database contains GCreates a valid declaration of a DBInfo. The variable name will be the  same as the database name Pretty prints a DBInfo  Does a final  touching up0 of a DBInfo before it is used by i.e DBDirect. L This converts any Bounded Strings to ordinary strings if that flag is set. *Converts all BStrings to ordinary Strings Creates a DBInfo Creates a TInfo Creates a CInfo Constructs a DBInfo that doesn't cause nameclashes 6Makes a table name unique among all other table names 6Makes a field name unique among all other field names &makes the dbname unique in a database :makes a supplied name unique in a table and its subfields (makes a supplied name unique in a field 1Gives a String a new name, according to its type JCase insensitive String comparison (there probably is a standard function & for this, there ought to be anyway %The name of the Database Options Tables The generated DBInfo The table name  Columns The generated TInfo The column name What the column contains The generated CInfo Either a Table or a Field  The new name  non-portable experimental%haskelldb-users@lists.sourceforge.netNoneCommon header for all files 5Adds LANGUAGE pragrams to the top of generated files @Adds an appropriate -fcontext-stackXX OPTIONS pragma at the top  of the generated file. AAll imports generated files have dependencies on. Nowadays, this . should only be Database.HaskellDB.DBLayout @Create module files in the given directory for the given DBInfo Creates modules #Make a filename from a module name 9Like 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 work Makes a module from a TInfo Pretty prints a TableInfo #Pretty prints a list of ColumnInfo -Pretty prints the type field in a ColumnInfo .Pretty prints the value field in a ColumnInfo  Pretty prints Field definitions /Extracts all the column names from a TableInfo /Extracts all the column types from a TableInfo 4Combines the results of columnNames and columnTypes base directory top-level module name Base directory @Name of directory and top-level module for the database modules !Module names and module contents Top level module name Top-level module name +list of module name, module contents pairs The name of our main module  Module name and module contents portable experimental%haskelldb-users@lists.sourceforge.netNone=Connects to a database and generates a specification from it Use bounded strings? Cstyle of generated Haskell identifiers, cOLUMN_NAME vs. columnName "the name our database should have the database connection return a DBInfo  non-portable experimental%haskelldb-users@lists.sourceforge.netNoneGConverts 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 Database The DBInfo to generate from  non-portable experimental%haskelldb-users@lists.sourceforge.netNone'ABCDEFGHIJ'JAIHGFEDCB non-portable experimental%haskelldb-users@lists.sourceforge.netNone*Constructs a table entry from a field tag Make an  for a field.  Field tag  Field tag 7 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      ABCDEFGHIJ non-portable experimental%haskelldb-users@lists.sourceforge.netNoneportable experimentalchucky@dtek.chalmers.seNone*Interface which drivers should implement.  The 7 function takes some driver specific name, value pairs G use to setup the database connection, and a database action to run.  6 lists all required options with a short description, 4 that is printed as help in the DBDirect program. 8Default dummy driver, real drivers should overload this ;Can 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 M from the  generator option in the given list. # Currently available generators: mysql,  postgresql, sqlite, default names of options to get options given 0a list of the same length as the first argument 6 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 given 0a list of the same length as the first argument 6 with the values of each option. Fails in the given & monad if any options is not found. options given "An SQL generator. If there was no   generator option, the default is used. # Fails if the generator is unknown    non portable experimental$"Justin Bailey" <jgbailey@gmail.com>None:Represents a query parameter. Left parameters are indexed 0 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. \      !"#$%&'()*+,-./0123456:\:     #$!&'%()"*+,-./0124563 portable experimental%haskelldb-users@lists.sourceforge.netNoneShows usage information   !"##$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGFHHIIJKLMNOPQRSTUVWXYZ[\Y]^_`abcdefghigjklmn[opqrstuvwxyz{|}~                                                                                 ! " # $ % & ' ( ) * + , - . / 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 c d e f g h i j k l m n o p qrstuvwxyz{|}~r_6789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = >  ? @ A B CDE F G H I 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 { | } ~   x2].haskelldb-2.2.2Database.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.HaskellDB.DriverAPIDatabase.HaskellDBDatabase.HaskellDB.DBDirectDatabase.HaskellDB.DBSpecold-time-1.1.0.1 System.Time CalendarTime time-1.4.0.1Data.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 SpecialOpTopOrderRelOp DifferenceDivide IntersectUnionTimes 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<<<<-copycopyAllselectprojectrestrictuniqueunion intersectdivideminustable tableNametableRec baseTable emptyTable attribute namedParamparam.==..<>..<..<=..>..>=._not.&&..||.like_incat.++._length.+..-..*../..%.isNullnotNull_casefunc_defaultconstantliteralfromNullfromVal constExprconstVal constNullcastcoercecount_sum_max_minavgstddevstddevPvariance variancePtopascdescorderunQueryrunQuery 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 hdbMakeEntrymkAttrtransformers-0.3.0.0Control.Monad.IO.ClassMonadIODriverInterfaceconnectrequiredOptions 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 $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$fExprTypeMaybe$fTypeableBoundedList$fTypeableCalendarTimequoteescapeUnOpType 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