w      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None!"9;'@It is used only to set polymorphic part of name of its container([Name of a pair of functions converting the value to and from a type that is an instance of PrimitivePersistField,@It is used only to set polymorphic part of name of its container;It is used only to set polymorphic part of name of its container | It should repeat fields from THUniqueDef but it may give different settings for them. It is done to allow foreign key fields to be different from parent fields of the entity. These fields are used for creating a the key constructor and instances for it. For example, it can have a default value, or even a different type (INT8 may reference INT4).=(If True, make it an instance of EmbeddedC5Either name of field, i.e, thFieldName, or expressionFname in the record, barGcolumn name, SQLbarH3column type, inet, NUMERIC(5, 2), VARCHAR(50), etc.I/name of constructor in the Field GADT, BarFieldLdefault value in the databaseNname of a pair of functionsZ@It is used only to set polymorphic part of name of its container[[Name of a pair of functions converting the value to and from a type that is an instance of PrimitivePersistField`@It is used only to set polymorphic part of name of its container  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~u   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstupqrstghijklmno\]^_`abWXYZ[OPQRSTUVDEFGHIJKLMN?@ABC6789:;<=>cdef./012345)*+,-$%&'( !"#  0   !"#$%&'()*+,-./0123456789:;<=>?@ABCD EFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None!"(T-     -     None!"Defines how the names are created. The mk* functions correspond to the set* functions. Functions mkNormal* define names of non-record constructor FieldACreate name of the table for the datatype. Parameters: data name.\Create name of the backend-specific key constructor for the datatype. Parameters: data name.8Create name for phantom constructor used to parametrise Field@. Parameters: data name, constructor name, constructor position.7Create name for phantom unique key used to parametrise KeyB. Parameters: data name, constructor name, unique constraint name.oCreate name of constructor for the unique key. Parameters: data name, constructor name, unique constraint name.Create name used by  persistNameU for the unique key. Parameters: data name, constructor name, unique constraint name.mCreate name of the constructor specific table. Parameters: data name, constructor name, constructor position.gCreate name of the db field for autokey. Parameters: data name, constructor name, constructor position.Create name of the field column in a database. Parameters: data name, constructor name, constructor position, field record name, field position.Create name of field constructor used in expressions. Parameters: data name, constructor name, constructor position, field record name, field position.Create name of selector (see Embeddedn) constructor used in expressions. Parameters: data name, constructor name, field record name, field position.Create field name used to refer to the it in settings for non-record constructors. Parameters: data name, constructor name, constructor position, field position.}Create name of the field column in a database. Parameters: data name, constructor name, constructor position, field position.Create name of field constructor used in expressions. Parameters: data name, constructor name, constructor position, field position.Create name of selector (see Embedded[) constructor used in expressions. Parameters: data name, constructor name, field position.0Naming style that is applied for all definitionsBCodegenerator will create a function with this name that will run migrate. for each non-polymorphic entity in definitionFunctions that produce Haskell code for the entities. In most cases when overriding, the default functions that produce mappings are not replaced but kept along with custom code. Example: [ , mkMyDecs].6Default style. Adds "Field" to each record field name.Example: Xdata SomeData a = Normal Int | Record { bar :: Maybe String, asc :: a} -- Generated code data NormalConstructor data RecordConstructor instance PersistEntity where data Field (SomeData a) where Normal0Field :: Field NormalConstructor Int BarField :: Field RecordConstructor (Maybe String) AscField :: Field RecordConstructor a ...UCreates field names in Persistent fashion prepending constructor names to the fields.Example: Udata SomeData a = Normal Int | Record { bar :: Maybe String, asc :: a} -- Generated code data NormalConstructor data RecordConstructor instance PersistEntity where data Field (SomeData a) where Normal0 :: Field NormalConstructor Int RecordBar :: Field RecordConstructor (Maybe String) RecordAsc :: Field RecordConstructor a ...gCreates the shortest field names. It is more likely to lead in name conflicts than other naming styles.Example: Idata SomeData a = Normal Int | Record { bar :: Maybe String, asc :: a} -- Generated code data NormalConstructor data RecordConstructor instance PersistEntity where data Field (SomeData a) where Normal0 :: Field NormalConstructor Int Bar :: Field RecordConstructor (Maybe String) Asc :: Field RecordConstructor a ...The generated Haskell names of phantom types (constructors, fields, etc.) are the same as with suffixNamingStyle. But the table names and columns are converted from camelCase to underscore_lower_case with .BCreates the auxiliary structures. Particularly, it creates GADT FieldX data instance for referring to the fields in expressions and phantom types for data constructors. The default names of auxiliary datatypes and names used in database are generated using the naming style and can be changed via configuration. The datatypes and their generation options are defined via YAML configuration parsed by quasiquoter . Transforms string from camelCase to lower_case_underscore naming convention. ColumnName -> column_name, parseURL -> parse_url, FieldIEEE754Floating -> field_ieee754_floatingBConverts quasiquoted settings into the datatype used by mkPersist.'Parses configuration stored in the file AmkPersist defaultCodegenConfig [groundhogFile|../groundhog.yaml|]:--$      !"#$%%&'())*+,--./01234456789:;<<=>?@@ABCDEFGHIJJKLMNOPQQRSTUUVWXYZ[[\]^^_`abcdeffghijklmnopqrstuvwxyz{|}~     'groundhog-th-0.8-5g64Ev3niD41fCRiRZ5mrmDatabase.Groundhog.TH.SettingsDatabase.Groundhog.TH.CodeGenDatabase.Groundhog.TH$groundhog-0.8-9TxFCoDdl5yJ54OMckmxWjDatabase.Groundhog.GenericpsFieldConverterpsReferenceParentpsDefaultValue psEmbeddedDef psExprName psDbTypeName psDbFieldName psFieldName PSFieldDef PSAutoKeyDefpsAutoKeyConstrNamepsAutoKeyIsDefPSUniqueKeyDefpsUniqueKeyNamepsUniqueKeyPhantomNamepsUniqueKeyConstrNamepsUniqueKeyDbNamepsUniqueKeyFieldspsUniqueKeyMakeEmbeddedpsUniqueKeyIsDef PSUniqueDef psUniqueName psUniqueTypepsUniqueFieldsPSConstructorDef psConstrNamepsPhantomConstrNamepsDbConstrNamepsDbAutoKeyNamepsConstrFieldspsConstrUniquesPSPrimitiveDefpsPrimitiveNamepsPrimitiveDbNamepsPrimitiveConverter PSEmbeddedDefpsEmbeddedNamepsDbEmbeddedNamepsEmbeddedFields PSEntityDef psDataNamepsDbEntityNamepsEntitySchema psAutoKey psUniqueKeyspsConstructorsTHUniqueKeyDefthUniqueKeyNamethUniqueKeyPhantomNamethUniqueKeyConstrNamethUniqueKeyDbNamethUniqueKeyFieldsthUniqueKeyMakeEmbeddedthUniqueKeyIsDef THUniqueDef thUniqueName thUniqueTypethUniqueFields THFieldDef thFieldName thDbFieldName thDbTypeName thExprName thFieldType thEmbeddedDefthDefaultValuethReferenceParentthFieldConverterTHConstructorDef thConstrNamethPhantomConstrNamethDbConstrNamethDbAutoKeyNamethConstrFieldsthConstrUniquesTHPrimitiveDefthPrimitiveNamethPrimitiveDbNamethPrimitiveConverter THEmbeddedDefthEmbeddedNamethEmbeddedConstructorNamethDbEmbeddedNamethEmbeddedTypeParamsthEmbeddedFields THAutoKeyDefthAutoKeyConstrNamethAutoKeyIsDef THEntityDef thDataNamethDbEntityNamethEntitySchema thAutoKey thUniqueKeys thTypeParamsthConstructorsPersistDefinitions psEntities psEmbeddeds psPrimitives$fToJSONPSAutoKeyDef$fToJSONPSUniqueKeyDef$fToJSONPSFieldDef$fToJSONReferenceActionType$fToJSONUniqueType$fToJSONPSUniqueDef$fToJSONPSConstructorDef$fToJSONPSEntityDef$fFromJSONPSAutoKeyDef$fFromJSONPSUniqueKeyDef$fFromJSONPSFieldDef$fFromJSONReferenceActionType$fFromJSONUniqueType$fFromJSONPSUniqueDef$fFromJSONPSConstructorDef$fFromJSONPSPrimitiveDef$fFromJSONPSEmbeddedDef$fFromJSONPSEntityDef$fFromJSONPersistDefinitions$fLiftPSAutoKeyDef$fLiftPSUniqueKeyDef$fLiftPSFieldDef$fLiftReferenceActionType$fLiftUniqueType$fLiftPSUniqueDef$fLiftPSConstructorDef$fLiftPSEmbeddedDef$fLiftPSEntityDef$fLiftPersistDefinitions$fLiftPSPrimitiveDef$fEqTHAutoKeyDef$fShowTHAutoKeyDef$fEqTHPrimitiveDef$fShowTHPrimitiveDef$fEqTHFieldDef$fShowTHFieldDef$fEqTHEmbeddedDef$fShowTHEmbeddedDef$fEqTHUniqueDef$fShowTHUniqueDef$fEqTHConstructorDef$fShowTHConstructorDef$fEqTHUniqueKeyDef$fShowTHUniqueKeyDef$fEqTHEntityDef$fShowTHEntityDef$fEqPSEmbeddedDef$fShowPSEmbeddedDef$fEqPSPrimitiveDef$fShowPSPrimitiveDef$fEqPSUniqueDef$fShowPSUniqueDef$fEqPSConstructorDef$fShowPSConstructorDef$fEqPSUniqueKeyDef$fShowPSUniqueKeyDef$fEqPSAutoKeyDef$fShowPSAutoKeyDef$fEqPSEntityDef$fShowPSEntityDef$fShowPersistDefinitionsmkEmbeddedPersistFieldInstance"mkEmbeddedPurePersistFieldInstancemkAutoKeyPersistFieldInstance&mkAutoKeyPrimitivePersistFieldInstancemkUniqueKeysIsUniqueInstancesmkUniqueKeysEmbeddedInstances!mkUniqueKeysPersistFieldInstances0mkUniqueKeysPrimitiveOrPurePersistFieldInstancesmkKeyEqShowInstancesmkEmbeddedInstancemkEntityPhantomConstructors#mkEntityPhantomConstructorInstancesmkEntityUniqueKeysPhantomsmkPersistEntityInstancemkEntityPersistFieldInstance"mkEntitySinglePersistFieldInstancemkEntityNeverNullInstancemkPrimitivePersistFieldInstance(mkPrimitivePrimitivePersistFieldInstancemkMigrateFunction NamingStylemkDbEntityNamemkEntityKeyName mkPhantomNamemkUniqueKeyPhantomNamemkUniqueKeyConstrNamemkUniqueKeyDbNamemkDbConstrNamemkDbConstrAutoKeyName mkDbFieldNamemkExprFieldNamemkExprSelectorNamemkNormalFieldNamemkNormalDbFieldNamemkNormalExprFieldNamemkNormalExprSelectorName CodegenConfig namingStylemigrationFunction mkEntityDecsmkEmbeddedDecsmkPrimitiveDecsdefaultCodegenConfigsuffixNamingStylepersistentNamingStyleconciseNamingStylelowerCaseSuffixNamingStyle mkPersistapplyEntitySettingsapplyEmbeddedSettingsapplyPrimitiveSettings mkTHEntityDefmkTHEmbeddedDefmkTHPrimitiveDefshowReadConverter enumConverter firstChar toUnderscore groundhog groundhogFiledefaultMkEntityDecsdefaultMkEmbeddedDecsdefaultMkPrimitiveDecs.=?.=:mkToPersistValuesmkFromPersistValuesmkPurePersistFieldInstance!mkDefaultPurePersistFieldInstance#mkDefaultSinglePersistFieldInstancemkEmbeddedInstance'mkToPurePersistValuesisDefaultKeyOneColumn getDefaultKey paramsContextparamsPureContext extractTypeisPrimfoldType hasFreeVars insideMaybespanMmkType mkTySynInstDclassP'equalP' instanceD' dataInstD'dataD' notStrict' mkUniqueKeyapplyAutoKeySettingsapplyConstructorSettingsapplyFieldSettingsmkFieldsForUniqueKey notUniqueBy assertUniqueassertSpaceFreevalidateEntity validateFieldvalidateEmbeddedparseDefinitions fromDataD