hG      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ None!"&23468:<=BKMf.Wraps the passed action into a named savepointThis connection manager always returns the same connection. This constraint is useful when performing operations which make sense only within one connection, for example, nested savepoints..Connection manager provides connection to the passed function handles transations. Manager can be a connection itself, a pool, Snaplet in Snap, foundation datatype in Yesod, etc.?Extracts the connection from manager and opens the transaction.Extracts the connection. -Datatypes which can be converted directly to !. The no-value parameter DbDescriptor db => proxy dbf allows conversion depend the database details while keeping it pure. A type which has an instance of  ' should be an instance of superclasses  and   as well. aRepresents all datatypes that map into several columns. Getting values for those columns is pure.Represents all datatypes that map into a single column. Getting value for that column might require monadic actions to access other tables.Represents everything which can be put into a database. This data can be stored in multiple columns and tables. To get value of those columns we might need to access another table. That is why the result type is monadic._Return name of the type. If it is polymorphic, the names of parameter types are separated with  symbolConvert a value into something which can be stored in a database column. Note that for complex datatypes it may insert them to return identifierConstructs a value from a !1. For complex datatypes it may query the databaseDescription of value type. It depends on database so that we can have, for example, xml column type in Postgres and varchar type in other databasesGExpr with phantom type helps to keep type safety in complex expressionsUsed to uniformly represent fields, constants and more complex things, e.g., arithmetic expressions. A value should be converted to  for usage in expressions-Types which are never NULL when converted to !. Consider the type Maybe (Maybe a). Now Nothing is stored as NULL, so we cannot distinguish between Just Nothing and Nothing which is a problem. The purpose of this class is to ban the inner Maybe's. Maybe this class can be removed when support for inner Maybe's appears.Avoid orphan instances.!TA raw value which can be stored in any backend and can be marshalled to and from a ."Creating some datatypes may require calling a function, using a special constructor, or other syntax. The string (which can have placeholders) is included into query without escaping. The recursive constructions are not allowed, i.e., [PersistValue] cannot contain PersistCustom values.--Datatype for incremental building SQL queries0dThe first argument is a flag which defines if the field names should be concatenated with the outer field name (False) or used as is which provides full control over table column names (True). Value False should be the default value so that a datatype can be embedded without name conflict concern. The second argument list of field names and field types.3Stores a database type. The list contains two kinds of tokens for the type string. Backend will choose a string representation for DbTypePrimitive's, and the string literals will go to the type as-is. As the final step, these tokens are concatenated. For example, [Left "varchar(50)"]* will become a string with max length and [Right DbInt64, Left "[]"]% will become integer[] in PostgreSQL.5The reference contains either EntityDef of the parent table and name of the unique constraint. Or for tables not mapped by Groundhog schema name, table name, and list of columns Reference to the autogenerated key of a mapped entity = (Left (entityDef, Nothing), onDelete, onUpdate) Reference to a unique key of a mapped entity = (Left (entityDef, Just uniqueKeyName), onDelete, onUpdate) Reference to a table that is not mapped = (Right ((schema, tableName), columns), onDelete, onUpdate)7(List table name and type of its argument9(type, nullable, default value, reference;A DB data type. Naming attempts to reflect the underlying Haskell datatypes, eg DbString instead of DbVarchar. Different databases may have different representations for these types.= ByteStringM<Defines how to treat the unique set of fields for a datatypeNis autoincrementedQlField is either a pair of entity field name and its type or an expression which will be used in query as-is.RUnique name and list of the fields that form a unique combination. The fields are parametrized to reuse this datatype both with field and DbType and with column nameXJCreates value of unique key using the data extracted from the passed valueY@Ordinal number of the unique constraint in the list returned by dZThis class helps type inference in cases when query does not contain any fields which define the constructor, but the entity has only one. For example, in select $ AutoKeyField ==. k] the condition would need type annotation with constructor name only if we select a sum type.\qPhantom constructors are made instances of this class. This class should be used only by Template Haskell codegen]PReturns constructor index which can be used to get ConstructorDef from EntityDef_Describes an entity constructoraConstructor namebAutokey name if anyc%Parameter names with their named typed/Uniqueness constraints on the constructor fielsfDescribes an ADT.h Entity name. )entityName (entityDef v) == persistName viCDatabase schema for the entity table and tables of its constructorsj;Named types of the instantiated polymorphic type parametersk'List of entity constructors definitionslOEither error messages or migration queries with safety flag and execution orderm+Datatype names and corresponding migrationsqmA token which defines the DB type. For example, different monads working with Sqlite, return may Sqlite type.rHInsert a new record to a database and return its autogenerated key or ()sKInsert a new record to a database. For some backends it may be faster than r.tTry to insert a record and return Right newkey. If there is a constraint violation for the given constraint, Left oldkey is returned , where oldkey is an identifier of the record with the matching values.u)Try to insert a record and return Right newkey. If there is a constraint violation for any constraint, Left oldkey is returned , where oldkey is an identifier of the record with the matching values. Note that if several constraints are violated, a key of an arbitrary matching record is returned.vdReplace a record with the given autogenerated key. Result is undefined if the record does not exist.wVReplace a record. The unique key marker defines what unique key of the entity is used.x@Return a list of the records satisfying the condition. Example: aselect $ (FirstField ==. "abc" &&. SecondField >. "def") `orderBy` [Asc ThirdField] `limitTo` 100ylReturn a list of all records. Order is undefined. It can be useful for datatypes with multiple constructors.zFetch an entity from a database{1Fetch an entity from a database by its unique key|6Update the records satisfying the condition. Example: 3update [FirstField =. "abc"] $ FirstField ==. "def"}+Remove the records satisfying the condition~DRemove the record with given key. No-op if the record does not existIRemove all records. The entity parameter is used only for type inference.6Count total number of records satisfying the conditioniCount total number of records with all constructors. The entity parameter is used only for type inference*Fetch projection of some fields. Example: }project (SecondField, ThirdField) $ (FirstField ==. "abc" &&. SecondField >. "def") `orderBy` [Asc ThirdField] `offsetBy` 100WCheck database schema and create migrations for the entity and the entities it containsExecute raw queryExecute raw query with resultsOType of the database default autoincremented key. For example, Sqlite has Int64Value of this type can be used as a part of a query. For example, it can be RenderS for relational databases, or BSON for MongoDB.Name of backend`This class helps to check that limit, offset, or order clauses are added to condition only once.$False - no DISTINCT, True - DISTINCTBThe name of the option and part of the SQL which will be put laterBIt can be used in expressions like a regular field. For example, delete (AutoKeyField ==. k) or 9delete (AutoKeyField ==. k ||. SomeField ==. "DUPLICATE")7This subset of Assignable is for plain database fields.This subset of Projection instances is for things that behave like fields. Namely, they can occur in condition expressions (for example, Field and SubField) and on the left side of update statements. For example "lower(field)" is a valid Projection, but not Field like because it cannot be on the left side. Datatypes that index PostgreSQL arrays "arr[5]" or access composites "(comp).subfield" are valid instances of Assignable.,Any data that can be fetched from a databaseIt returns multiple expressions that can be transformed into values which can be selected. Difflist is used for concatenation efficiency. It is like B. However, we cannot use it for projections in all cases. For the  instances 0 expects entity id instead of the entity values.7It is used to map field to column names. It can be either a column name for a regular field of non-embedded type or a list of this field and the outer fields in reverse order. Eg, fieldChain $ SomeField ~> Tuple2_0Selector may result in [("val0", DbString), ("some", DbEmbedded False [dbType "", dbType True])]."Defines sort order of a result-set!Represents condition for a query.aIt allows to store autogenerated keys of one database in another if they have different datatype.3A phantom datatype to make instance head different u (UniqueMarker v)3A phantom datatype to make instance head different c (ConstructorMarker v)8Key marked with this type can have value for any backendA holder for Unique constraints;Only instances of this class can be persisted in a databasecThis type is used for typesafe manipulation of separate fields of datatype v. Each constructor in p corresponds to its field in a datatype v. It is parametrised by constructor phantom type and field value type.A unique identifier of a value stored in a database. This may be a primary key, a constraint or unique indices. The second parameter is the key description.nThis type is the default autoincremented key for the entity. If entity does not have such key, AutoKey v = ().,This type is the default key for the entity.EIt is HFalse for entity with one constructor and HTrue for sum types.*Returns a complete description of the typeMarshalls value to a list of ! ready for insert to a database&Constructs the value from the list of !UReturns constructor number and a list of uniques names and corresponding field valuesIs internally used by FieldLike Field instance We could avoid this function if class FieldLike allowed FieldLike Fields Data or FieldLike (Fields Data). However that would require additional extensions in user-space code8Accesses fields of the embedded datatypes. For example, HSomeField ==. ("abc", "def") ||. SomeField ~> Tuple2_0Selector ==. "def"Select DISTINCT rows. select $ distinct CondEmpty  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ keep in cachequerypositional parameters keep in cachequerypositional parametersresults processing function  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!,+*)('&%$#"   -.;FEDCBA@?>=<:6987fghijke01/342_`abcd^\]Z[WXYRSTUVQMPONGLKJIH5lmnpqrstuvwxyz{|}~oT    ! ,+*)('&%$#"-./0123456987:; FEDCBA@?>=<GLKJIHMPONQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ None2346:METhis class helps to shorten the type signatures of user monadic code.SProduce the migrations but not execute them. Fails when an unsafe migration occurs.AReturns either a list of errors in migration or a list of queriesVExecute the migrations with printing to stderr. Fails when an unsafe migration occurs.>Execute the migrations. Fails when an unsafe migration occurs.]Execute migrations. Executes the unsafe migrations without warnings and prints them to stderrPretty print the migrationsCreates migrations and executes them with printing to stderr. Fails when an unsafe migration occurs. > runMigration m = createMigration m >>= executeMigrationCreates migrations and silently executes them. Fails when an unsafe migration occurs. > runMigration m = createMigration m >>= executeMigrationSilentCreates migrations and executes them with printing to stderr. Executes the unsafe migrations without warnings > runMigrationUnsafe m = createMigration m >>= executeMigrationUnsafeLJoins the migrations. The result is either all error messages or all queries Returns only old elements, only new elements, and matched pairs (old, new). The new ones exist only in datatype, the old are present only in DB, match is typically by name (the properties of the matched elements may differ).@It helps to run database operations within an application monad.VRuns action within connection. It can handle a simple connection, a pool of them, etc.It is similar to  but runs action without transaction. It can be useful if you use Groundhog within IO monad or in other cases when you cannot put p instance into your monad stack. flip withConn cm $ \conn -> liftIO $ do -- transaction is already opened by withConn at this point someIOAction getValuesFromIO $ \value -> runDbConnNoTransaction (insert_ value) conn It helps to run  within a monad.;True - support unsafe queriescomputation to run first>computation to run afterward (even if an exception was raised)-computation to run first ("acquire resource"),computation to run last ("release resource")computation to run in-between     8     8     3      None !"&246=K{      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHh      !"#$%&'()*+,-./0123456789:;<=>?@BADCFEHGNone &23468<=K8This helper class can make type signatures more concise +Instances of this type can be converted to K. It is useful for uniform manipulation over fields, constant values, etc.  Update field Boolean "and" operator. Boolean "or" operator. #zThis function more limited than (==.), but has better type inference. If you want to compare your value to Nothing with (==.)2 operator, you have to write the types explicitly !myExpr ==. (Nothing :: Maybe Int). TODO: restrict db r $Converts value to r. It can help to pass values of different types into functions which expect arguments of the same type, like (+). %`It is kept for compatibility with older Groundhog versions and can be replaced with "liftExpr". 7IJKLMN !"#$%OPQRSTUVWXYZ[\]^_`abcdefghijklmno !"#$% !"#$%6IJKLMN !"#$%OPQRSTUVWXYZ[\]^_`abcdefghijklmno  !"None 234=K &This class distinguishes databases which support trigonometry and other math functions. For example, PostgreSQL has them but Sqlite does not. It contains ad hoc members for features whose syntax differs across the databases.'Natural logarithm)This class distinguishes databases which support SQL-specific expressions. It contains ad hoc members for features whose syntax differs across the databases.2Escape function, priority of the outer operator. The result is a list for the embedded data which may expand to several RenderS.:JIf we reuse complex expression several times, prerendering it saves time. / can be obtained with ;;`Helps creating an expression which depends on render configuration. It can be used in pair with :. b myExpr x = mkExprWithConf $ conf _ -> let x' = prerenderExpr conf x in x' + x' * x' @DYRenders conditions for SQL backend. Returns Nothing if the fields don't have any columns.pYRenders conditions for SQL backend. Returns Nothing if the fields don't have any columns.M;Returns escaped table name optionally qualified with schemaN@Returns escaped main table name optionally qualified with schema3&'()*+,-./0123456789:;<=>?@ABCDpEFGHIqJKLMNrstuvwxy.-.&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN.DFGLHE<=>?;:KJI4567-./0189BA@C23)*+,-.&'(MN%&'()*+,-./0123456789:;<=>?@ABCDpEFGHIqJKLMNrstuvwxyNone euSql pieces for the create table statement that add constraints and alterations for running after the table is createdlSchema name, if not existsmQualified function namen$Statement which creates the functiono>Qualified trigger name, qualified table name, field name, bodyp2Qualified trigger name, qualified table name, bodyq,Qualified trigger name, qualified table namerlQualified table name, create statement, structure of table from DB, structure of table from datatype, altersconstraint name and reference Either column name or expression;Schema-qualified name of a table of another database objectchild column, parent columnCreate migration for a given entity and all entities it depends on. The stateful Map is used to avoid duplicate migrations when an entity type occurs several times in a datatypeWOP Schema nameQR Schema nameSQualified table nameTQualified table nameUQualified trigger nameVQualified function name%Argument types, return type, and bodyWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~z{|migrate schemamigrate entity migrate listinitial entity From database From datatype}~POPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~P}~t|{zyxwvuksrqponmlXYZ[\]^_`abcdefghijOPQRSTUVWOPQRSTUVWXYZ[\]^_`abcdefghijksrqponmlt|{zyxwvu}~z{|}~None3=K Conditions.It is returned when none of conditions is true)*+,-.)*+,-.None &3=HKMHreceives constructor number and row of values from the constructor tablefunction to run queryfunction to execute queryfunction to run query0allow multiple duplication of uniques with nulls NoneTXpqrstuvwxyz{|}~ !"#$%Bpqrstuvwxyz{|}~X !"#$%   !"#$%&&'()*+,--./0123456789::;<;=>=?@ABCCDEFGHIJKLMNOPQRSTUVWXYZ[Z\]^_`abcdefgfhijklmlnopqrstuvwxyz{|}~      !"#$%&'()*+,--.//00123456789:;<=>?@ABCDEFGHIJKLMNOPQRSSTUVWXYZ[\]^_`abcdefghijklmlnopqrstunvwxyz{||}~~|}{z                                                                                                              ! " # $ % & ' ( ) * + , - ./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqgroundhog-0.7.0Database.Groundhog.Generic.Sql(Database.Groundhog.Generic.Sql.FunctionsDatabase.Groundhog.CoreDatabase.Groundhog.GenericDatabase.Groundhog.Expression$Database.Groundhog.Generic.Migration0Database.Groundhog.Generic.PersistBackendHelpersdelimDatabase.Groundhog.InstancesDatabase.Groundhogbase Data.String fromString Data.Monoid<> GHC.Floatatan2 SavepointwithConnSavepointSingleConnectionManagerConnectionManagerwithConnwithConnNoTransactionPrimitivePersistFieldtoPrimitivePersistValuefromPrimitivePersistValuePurePersistFieldtoPurePersistValuesfromPurePersistValuesSinglePersistFieldtoSinglePersistValuefromSinglePersistValue PersistField persistNametoPersistValuesfromPersistValuesdbTypeExpr UntypedExprExprCondExprPure ExprFieldExprRaw NeverNullZT PersistValue PersistCustom PersistNullPersistZonedTimePersistUTCTimePersistTimeOfDay PersistDay PersistBool PersistDouble PersistInt64PersistByteString PersistStringUtf8 EmbeddedDef EmbeddedDef' OtherTypeDef OtherTypeDef'ParentTableReferenceDbTypeDbList DbEmbeddedDbTypePrimitiveDbTypePrimitive'DbOtherDbBlobDbDayTimeZoned DbDayTimeDbTimeDbDayDbBoolDbRealDbInt64DbInt32DbStringReferenceActionType SetDefaultSetNullCascadeRestrictNoAction UniqueType UniquePrimary UniqueIndexUniqueConstraint UniqueDef UniqueDef' uniqueDefName uniqueDefTypeuniqueDefFields IsUniqueKey extractUnique uniqueNum EntityConstrentityConstrNum ConstructorphantomConstrNumConstructorDefConstructorDef' constrNameconstrAutoKeyName constrParams constrUniques EntityDef EntityDef' entityName entitySchema typeParams constructorsSingleMigrationNamedMigrations Migration RowPopperPersistBackend PhantomDbinsertinsert_insertBy insertByAllreplace replaceByselect selectAllgetgetByupdatedeletedeleteBy deleteAllcountcountAllprojectmigrate executeRawqueryRaw insertListgetList DbDescriptor AutoKeyTypeQueryRaw backendName DbPersist unDbPersistHasSelectOptionsHasLimit HasOffsetHasOrder HasDistinctgetSelectOptions SelectOptions condOptions limitOptions offsetOptions orderOptionsdistinctOptionsdbSpecificOptionsRestrictionHolder AutoKeyFieldSubFieldEmbeddedSelector selectorNum FieldLike fieldChain Assignable Projection' Projection ProjectionDbProjectionRestrictionprojectionExprsprojectionResult FieldChainOrderDescAscUpdate ExprRelationLeGeLtGtNeEqCond CondEmptyCondRawCompareNotOrAndHTrueHFalseProxy KeyForBackend UniqueMarkerConstructorMarkerBackendSpecificUnique PersistEntityFieldKeyAutoKey DefaultKey IsSumType entityDeftoEntityPersistValuesfromEntityPersistValues getUniquesentityFieldChain~>limitTooffsetByorderBydistinct runDbPersistfromUtf8HasConn PSFieldDef psFieldName psDbFieldName psDbTypeName psExprName psEmbeddedDefpsDefaultValuepsReferenceParentcreateMigration getQueriesexecuteMigrationexecuteMigrationSilentexecuteMigrationUnsafeprintMigration runMigrationrunMigrationSilentrunMigrationUnsafemergeMigrations failMessagefailMessageNamedfinallybracket onExceptionapplyDbTypeSettingsprimToPersistValueprimFromPersistValueprimToPurePersistValuesprimFromPurePersistValuesprimToSinglePersistValueprimFromSinglePersistValuepureToPersistValuepureFromPersistValuesingleToPersistValuesingleFromPersistValuetoSinglePersistValueUniquefromSinglePersistValueUniquetoPersistValuesUniquefromPersistValuesUniquetoSinglePersistValueAutoKeyfromSinglePersistValueAutoKey replaceOnefindOne matchElements haveSameElems mapAllRows phantomDbgetAutoKeyTypegetUniqueFieldsisSimplerunDb runDbConnrunDbConnNoTransaction withSavepoint deleteByKey Unifiable ExpressionOf ExpressiontoExpr=.&&.||.==./=.<.<=.>.>=.isFieldNothingliftExprtoArith FloatingSqlDblog'logBase'SqlDbappendsignum'quotRem'equalsOperatornotEqualsOperator RenderConfigescSnippetRenderSgetQuery getValues StringLikefromChar prerenderExprmkExprWithConf renderExprrenderExprPriorityrenderExprExtendedrenderPersistValueparensoperatorfunctionmkExpr renderCond renderChaindefaultShowPrim renderOrders renderFieldsflatten commasJoin intercalateS renderUpdates tableName mainTableNameSchemaAnalyzer schemaExistsgetCurrentSchema listTableslistTableTriggers analyzeTableanalyzeTriggeranalyzeFunctiongetMigrationPack MigrationPack compareTypes compareRefs compareUniqscompareDefaultsmigTriggerOnDeletemigTriggerOnUpdate migConstrescapeautoincrementedKeyTypeName mainTableIddefaultPriorityaddUniquesReferences showSqlType showColumn showAlterDbdefaultReferenceOnDeletedefaultReferenceOnUpdateAlterDB CreateSchema DropFunctionCreateOrReplaceFunctionAddTriggerOnUpdateAddTriggerOnDelete DropTrigger AlterTableAddTable AlterColumn AddColumn DropColumn DropReference AddReference DropIndexDropConstraint AddUnique UpdateValue NoDefaultDefaultNotNullIsNullType TableInfo tableColumns tableUniquestableReferences UniqueDefInfo QualifiedName ReferencereferencedTableNamereferencedColumnsreferenceOnDeletereferenceOnUpdateColumncolNamecolNullcolType colDefaultmigrateRecursively migrateSchema migrateEntity migrateList getAltersdefaultMigConstrshowReferenceActionreadReferenceActionin_notIn_likenotLikeloweruppercotradiansdegreescase_StMSPunStMSPStReader unStReader$fEqExpr $fShowExpr$fOrdZT$fEqZT $fShowUtf8$fEqUtf8$fMonadLoggerDbPersistTFCo:R:StMDbPersista$fMonadBaseControlIODbPersistTFCo:R:StTDbPersista$fMonadTransControlDbPersist$fMonadBaseIODbPersist#$fHasSelectOptionsSelectOptionsdb'r$fHasSelectOptionsConddb'r$fProjection'pdbraexecuteMigration'applyReferencesSettings$fHasConnmcmconn EntityConstr'entityConstrNum'Tuple5_4SelectorTuple5_3SelectorTuple5_2SelectorTuple5_1SelectorTuple5_0SelectorTuple4_3SelectorTuple4_2SelectorTuple4_1SelectorTuple4_0SelectorTuple3_2SelectorTuple3_1SelectorTuple3_0SelectorTuple2_1SelectorTuple2_0Selector readHelper$fEntityConstr'HTruec$fEntityConstr'HFalsec$fEntityConstrvc $fFieldLikeuk$fFieldLikeFielda$fFieldLikeSubFielda$fFieldLikeAutoKeyFielda$fAssignableuk$fAssignableFielda$fAssignableSubFielda$fAssignableAutoKeyFielda$fProjection(,,,,)(,,,,)$fProjection(,,,)(,,,)$fProjection(,,)(,,)$fProjection(,)(,)$fProjectionuk$fProjectioncv$fProjectionAutoKeyFielda$fProjectionConda$fProjectionExpra$fProjectionSubFielda$fProjectionFielda$fPersistFieldKeyForBackend$fPersistField(,,,,)$fPersistField(,,,)$fPersistField(,,)$fPersistField(,)$fPersistField()$fPersistField[]$fPersistFieldMaybe$fPersistFieldZonedTime$fPersistFieldUTCTime$fPersistFieldTimeOfDay$fPersistFieldDay$fPersistFieldBool$fPersistFieldDouble$fPersistFieldWord64$fPersistFieldWord32$fPersistFieldWord16$fPersistFieldWord8$fPersistFieldInt64$fPersistFieldInt32$fPersistFieldInt16$fPersistFieldInt8$fPersistFieldInt$fPersistFieldText$fPersistField[]0$fPersistFieldByteString$fPersistFieldByteString0$fNeverNullKeyForBackend$fNeverNullKey$fNeverNullZonedTime$fNeverNullUTCTime$fNeverNullTimeOfDay$fNeverNullDay$fNeverNullBool$fNeverNullDouble$fNeverNullWord64$fNeverNullWord32$fNeverNullWord16$fNeverNullWord8$fNeverNullInt64$fNeverNullInt32$fNeverNullInt16$fNeverNullInt8$fNeverNullInt$fNeverNullByteString$fNeverNullByteString0$fNeverNullText $fNeverNull[]$fSinglePersistFielda$fPurePersistFielda$$fPrimitivePersistFieldKeyForBackend$fPrimitivePersistFieldMaybe $fPrimitivePersistFieldZonedTime$fPrimitivePersistFieldUTCTime $fPrimitivePersistFieldTimeOfDay$fPrimitivePersistFieldDay$fPrimitivePersistFieldBool$fPrimitivePersistFieldDouble$fPrimitivePersistFieldWord64$fPrimitivePersistFieldWord32$fPrimitivePersistFieldWord16$fPrimitivePersistFieldWord8$fPrimitivePersistFieldInt64$fPrimitivePersistFieldInt32$fPrimitivePersistFieldInt16$fPrimitivePersistFieldInt8$fPrimitivePersistFieldInt!$fPrimitivePersistFieldByteString"$fPrimitivePersistFieldByteString0$fPrimitivePersistFieldText$fPrimitivePersistField[]$fPurePersistField(,,,,)$fPurePersistField(,,,)$fPurePersistField(,,)$fPurePersistField(,)$fPurePersistField()TFCo:R:Selector(,,,,)constr$fEmbedded(,,,,)TFCo:R:Selector(,,,)constr$fEmbedded(,,,)TFCo:R:Selector(,,)constr$fEmbedded(,,)TFCo:R:Selector(,)constr $fEmbedded(,) NormalizeKeyTypeEqNormalizeValue Normalize fieldHelperTFCo:R:NotHFalseTFCo:R:NotHTrue$fNormalizeKeyHFalsevuk$fNormalizeKeyHTruevuk$fTypeEqxxHTrue $fTypeEqxyb$fNormalizeValuear$fNormalizeValueKeyr$fNormalizeValueMayber$fNormalizeHTruetr$fNormalizeHFalsetr$fNormalizeHTrueCondr$fNormalizeHFalseCondr$fNormalizeHTrueAutoKeyFieldr $fNormalizeHFalseAutoKeyField(,)$fNormalizeHTrueur$fNormalizeHFalseu(,)$fNormalizeHTrueExprr$fNormalizeHFalseExpr(,)$fNormalizeHTrueSubFieldr$fNormalizeHFalseSubField(,)$fNormalizeHTrueFieldr$fNormalizeHFalseField(,) $fUnifiableab $fUnifiableaa$fExpressiondb'r'Cond$fExpressiondbr'u$fExpressiondbr'AutoKeyField$fExpressiondb'r'SubField$fExpressiondbr'Field$fExpressiondb'r'Expr$fExpressiondbra$fExpressionOfdbraa'renderCondPriorityflattenP qualifySchema$fStringLike[]$fStringLikeRenderS$fIsStringRenderS$fMonoidRenderS$fStringLikeUtf8$fIsStringUtf8 $fMonoidUtf8 mkColumns mkReferencestraverseDbType migrateColumn migrateUniq dropUnique mkDeletes$fIntegralExpr $fEnumExpr $fRealExpr $fOrdExpr$fFloatingExpr$fFractionalExpr $fNumExprmkEntityconstrIdtoEntityPersistValues' mkUniqueCond