|n      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ KRepresents a value containing all the configuration options for a specific N backend. This abstraction makes it easier to write code that can easily swap  backends.  I really don't want Applicative here, but it's necessary for Mongo.   !"#$%&'()*+,-.ACreate a new record in the database, returning the newly created  identifier. /AReplace the record in the database with the given key. Result is , undefined if such a record does not exist. 0/Update individual fields on a specific record. 1EUpdate individual fields on any record matching the given criterion. 2DDelete a specific record by identifier. Does nothing if record does  not exist. 3BDelete a specific record by unique key. Does nothing if no record  matches. 41Delete all records matching the given criterion. 5*Get a record by identifier, if available. 6GGet a record by unique key, if available. Returns also the identifier. 7EGet all records matching the given criterion in the specified order.  Returns also the identifiers. 8,get just the first record for the criterion 9Get the <;/s of all records matching the given criterion. :<The total number of records fulfilling the given criterion. ;<=>?@HA single database entity. For example, if writing a blog application, a L blog entry would be an entry, containing fields such as title and content. A*Parameters: val and datatype of the field B)Unique keys in existence on this entity. CDEFGHIJK Filters which are available for select, 1 and  44. Each filter constructor specifies the field being G filtered on, the type of comparison applied (equals, not equals, etc) & and the argument for the comparison. LM4convenient for internal use, not needed for the API NOPQRSTUVWXYZ[\.A value which can be marshalled to and from a k. ]^_`aCA SQL data type. Naming attempts to reflect the underlying Haskell L datatypes, eg SqlString instead of SqlVarchar. Different SQL databases may . have different translations for these types. bcdefgh1FIXME 8-byte integer; should be renamed SqlInt64 ijkHA raw value which can be stored in any backend and can be marshalled to  and from a \. l(intended especially for MongoDB backend mnopqrstuvwxyz{|}~Generic Exception JInsert a value, checking for conflicts with any unique constraints. If a 5 duplicate exists in the database, it is returned as . Otherwise, the  new <; is returned as . A modification of 6, which takes the @ itself instead  of a B! value. Returns a value matching one of the unique keys. This 9 function makes the most sense on entities with a single B  constructor. same as belongsTo, but uses getJust# and therefore is similarly unsafe 8Same as get, but for a non-null (not Maybe) foreign key J Unsafe unless your database is enforcing that the foreign key is valid KCheck whether there are any conflicts for unique keys with this entity and $ existing entities in the database. Returns 9 if the entity would be unique, and could thus safely be  . ed; returns  on a conflict. Call select" but return the result as a list.   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~kwvutsrqponmlajihgfedcb\]^_`@ACBDEFGHIJ-./0123456789:  RVUTS>?x~}|{zyWXYZ[KNMLOPQ;<=&'()*+,%$ !"#    !"# !"#$%&'()*+,'()*+,- ./0123456789:./0123456789:;<=<=>??@ ACBDEFGHIJABCDEFGHIJKNMLOPQLMNOPQRVUTSSTUVWXYZ[XYZ[\]^_`]^_`a jihgfedcbbcdefghijk wvutsrqponmllmnopqrstuvwx~}|{zyyz{|}~(A line may be part of a header or body. A line. We don')t care about spaces in the middle of the  line. Also, we don')t care about the ammount of indentation. A token used by the parser.  Token tok is token tok already unquoted. Spaces n are n consecutive spaces. @Parses a quasi-quoted syntax into a list of entity definitions. Tokenize a string. <A string of tokens is empty when it has only spaces. There  can't be two consecutive , so this takes O(1) time. =Remove leading spaces and remove spaces in the middle of the  tokens. 6Divide lines into blocks and make entity definitions.  Construct an entity definition. 21Create the list of columns for the given entity. include table name? include table name? include table name? include WHERE? ,,,      Same as 2, but returns a list of the SQL commands executed % instead of printing them to stderr.  is silent? Perform a database commit. Perform a database rollback. ;<=;<=   assign a field a value  assign a field by addition (+=) #assign a field by subtraction (-=) &assign a field by multiplication (*=) assign a field by division (/=) assign a field a value  assign a field by addition (+=) #assign a field by subtraction (-=) &assign a field by multiplication (*=) assign a field by division (/=) assign a field a value  assign a field by addition (+=) #assign a field by subtraction (-=) &assign a field by multiplication (*=) assign a field by division (/=) assign a field a value  assign a field by addition (+=) #assign a field by subtraction (-=) &assign a field by multiplication (*=) assign a field by division (/=) assign a field a value  assign a field by addition (+=) #assign a field by subtraction (-=) &assign a field by multiplication (*=) assign a field by division (/=) assign a field a value  assign a field by addition (+=) #assign a field by subtraction (-=) &assign a field by multiplication (*=) assign a field by division (/=) In NotIn G-./0123456789:;<=@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`G\]^_`@ACBDEFGHIJ-./0123456789:;<=WXYZ[RVUTSKNMLOPQ    !"#$%&&'())*+,-.//0123456789:;<=>?@ABCCDEEFGHIJKLMNOPQRSQTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~           persistent-0.6.4.1Database.Persist.TH.LibraryDatabase.Persist.UtilDatabase.Persist.BaseDatabase.Persist.Quasi$Database.Persist.GenericSql.InternalDatabase.Persist.GenericSql.RawDatabase.Persist.GenericSqlDatabase.Persist.JoinDatabase.Persist.Join.SqlDatabase.PersistapEnullable deprecate PersistConfigPersistConfigBackendPersistConfigPool loadConfigwithPoolrunPool PersistUpdateDivideMultiplySubtractAddAssign DeleteCascade deleteCascade PersistFilterBackendSpecificFilterNotInInLeGeLtGtNeEq UniqueDef uniqueName uniqueColumns ColumnDef columnName columnType columnAttribs ColumnType ColumnName EntityDef entityName entityAttribs entityColumns entityUniques entityDerivesPersistBackendinsertreplaceupdate updateWheredeletedeleteBy deleteWheregetgetBy selectEnum selectFirst selectKeyscountKeyunKeySomePersistField PersistEntity EntityFieldUniquepersistColumnDef entityDeftoPersistFieldsfromPersistValues halfDefinedpersistUniqueToFieldNamespersistUniqueToValuespersistUniqueKeysFilterFilterOr FilterAnd filterField filterValue filterFilter SelectOptLimitToOffsetByDescAscUpdate updateField updateValue updateUpdate PersistFieldtoPersistValuefromPersistValuesqlType isNullableSqlTypeSqlBlob SqlDayTimeSqlTimeSqlDaySqlBoolSqlReal SqlIntegerSqlInt32 SqlString PersistValuePersistObjectId PersistMap PersistList PersistNullPersistUTCTimePersistTimeOfDay PersistDay PersistBool PersistDouble PersistInt64PersistByteString PersistTextPersistExceptionPersistMongoDBUnsupportedPersistMongoDBErrorPersistForeignConstraintUnmetPersistInvalidFieldPersistMarshalError PersistErrorfst3snd3third3updateFieldNameinsertBy getByValue belongsTo belongsToJustgetJust checkUniquelimitOffsetOrder selectListdeleteCascadeWhereparseRawName unRawName UniqueDef'ColumncNamecNullcTypecDefault cReference StatementfinalizeresetexecutewithStmt Connectionprepare insertSqlstmtMapclose migrateSqlbegincommitC rollbackC escapeNamenoLimit RowPopper withSqlPool withSqlConn mkColumnsrefName tableColumns rawFieldName rawTableNamerawTableIdNamegetFiltsValues filterClausefilterClauseNoWheredummyFromFilts getFieldName orderClause SqlPersist unSqlPersistgetStmtgetStmt' MigrationConnectionPool runSqlPool runSqlConnparseMigrationparseMigration'printMigration getMigration runMigrationrunMigrationSilentrunMigrationUnsafemigratecommitrollback SelectOneMany somFilterOne somOrderOne somFilterMany somOrderMany somFilterKeys somGetKeysomIncludeNoMatchRunJoinResultrunJoin selectOneMany=.+=.-=.*=./=.==.!=.<.<=.>.>=.<-./<-.||.base Data.EitherLeftRightghc-prim GHC.TypesTrueFalseLineTypeBodyHeaderLinelineTypetokensTokenSpacestokenizeempty removeSpacesparse' mkEntityDeftakeCols takeUniqs takeDerivesclose' getSqlValuegetIdNameValuefilterClauseHelper tableColumndummyFromOrderCautiousMigrationSql withStmt'execute'dummyFromUnique dummyFromKeyallSql unsafeSqlsafeSql runMigration'executeMigrateupdatePersistValuefromPersistValuesIdaddTable colsPlusId filterName