+T      !"#$%&'()*+,-./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 c d e f g h i j k l m n o p q r s t u v w x y z { | } ~None!*+,59:;<=DQRT_f       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw None!*+,59:;<=DOQRT_fxyz{| !"#$%  !!  xyz{| !"#$%None!*+,59:;<=DQRT_f!&)Column information gathered from a parser(name retrieved from the parser)generate TH name*generated TH type+original sql type,+list of constraints that have to be applied-List of constraints that can be applied to a Column and affect generated datatype Currently, only Null constraint affects it by wrapping data type with 0GWhen something goes wrong, this explains what went wrong - hopefully...8)Entity information gathered from a parser:>name retrieved from the parser, basically a computed value of };generated TH name<&original sql name retrieved by hssqlpp=generated datatype>+list of constraints that have to be applied?list of all columnsH<Minimal context we need to generate a foreign key constraintJname of the foreign keyMreferenced entityNreferenced columnsV;Minimal context we need to generate a unique key constraintXname of the constraintYreferenced entityZreferenced columnsa<Minimal context we need to generate a primary key constraintcname of the constraintdreferenced entityereferenced columnsjhFull parse context. This datatype is filled with information as parser goes trough the sql file. After j5 is filled, TH takes over and code generation starts.llist of entities foundmall foreign keysnall primary keysoall unique constraintstDefines null values for all datatypes that we support in Basic. This is basically a hack to avoid usage of unsafeCoerce, because with unsafeCoerce you can hit segmentation faults due to wrong memory allocation (e.g.  and ).U&'()*+,-./012389:;<=>?@ABCDEFHIJKLMNOPQRSTVWXYZ[\]^_abcdefghjklmnopqrtuvwxyz{|}~-&'-./0189@ABCDHIOPQRSTVW[\]^_abfghjkpqrtuvwxyU0132-./&'()*+,DCBA@F89:;<=>?ETSRQPOHIJKLMN_^]\[VWXYZhgfabcderqpjklmnoyxwvtu~}|{z1&'()*+,-./012389:;<=>?@ABCDEFHIJKLMNOPQRSTVWXYZ[\]^_abcdefghjklmnopqrtuvwxyz{|}~None!*+,59:;<=DQRT_flifts a list of types to a type level (i.e. typelevel list) e.g. `listToTypeLeve [Int, String, Double] = '[ Int, String, Double ]`Used to append n times ` $ field` to the expressionUsed to append ` $$ field` at the end of the expression<returns a plural of a known noun. Basically just appends s or es#Tries to name multiples constraints\Mechanism for naming unnamed constraints. If a constraint cannot be named, an error is trown.Provides default naming scheme for constraints Converts a }3 to a plain text @TODO test complex naming schemes1Retrieves a list of optional columns in an entitycTries to retrieve entity information. If an entity with that name doesn't exist an error is thrown.cTries to retrieve entity information. If an entity with that name doesn't exist an error is thrown.nTries to retrieve column information from entity. If a column with that name doesn't exist an error is thrown.-Retrieves the primary key for an entity from jAGenerates name for the column lens (i.e. lowercases first letter)(c) Nikola Henezi, Luka HorvatMIT)nikola@henezi.com, luka.horvat9@gmail.comNone!*+,59:;<=DQRT_fConversion between ~ to haskell . ~ is used internaly by KApplies special constraint rules. Rules: "serial" type needs to have /Actual conversions. The following Postgres types are currently supported: > serial > bigint > integer > int > int4 > boolean > timestamp > time > point > double precision > double > character varying > text > byteaNone!*+,59:;<=DQRT_fNone!*+,59:;<=ADOQRT_fIDI#None!!%&*+,-569:;<=?DIOQRT_fDefines  kind.BISo dfoldMap knows to behave like an expression when used inside of a dmapM;Wrapps every DbExp in the tuple with the GroupMappableDbExpfSA kind and type used so LiftAggregation can differentiate types like `m a` from d by their kind.     /0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   !    /0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVXWYZ[\`]_^abcdefghijtkmoqplnrsuvwxyz{|}~     ~}|{zyxwjklmnopqrstuvhifgdeabc\]^_`YZ[VWXTURSPQLMNOIJKHFGECDB?@A><=:;896734521/0       /0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij klmnopqrstuvwxyz{|}~  None!*+,59:;<=?DQRT_f                     None!%&*+,59:;<=DOQRT[_f"#$%&'()*+,-./012"#$%&'()*+,-./012"#$%&'()*+,-./012"#$%&'()*+,-./012 None!*+,59:;<=DQRT_f 3456789:;<=> 3456789:;< 34>=56789:;< 3456789:;<=>5464748494:4;3<2 None!%&*+,59:;<=DOQRT_fO.Handles SQL by querying a PostgreSQL database.?@ABCDEFGHIJKLMNOPQRSTUVWX JK?@ABCDEFHIMNOPQRHIEFGXJKLMNODBCWVUPQA?@TSR?@ABCDEFGHIMNOPQRSTUVWXJKL None!*+,59:;<=DQRT_f!Z[\]^_`abcdefghijklmnopqrstuvwxyzZ[\]^_`abcdefghilmnopqrst$[\kj]^_Z`abcdefghipqzzzznoyxrlmwvustZ[\]^_`abcdefghijklmnopqrstuvwxyzNone!*+,59:;<=DQRT_f ~~ ~~None!*+,59:;<=DQRT_f   None!*+,59:;<=DQRT_f  None!*+,59:;<=DQRT_fF    3456789:;<Z[\]^_`abcdefghilmnopqrst~None!*+,59:;<=DQRT_f*Generates a data constructor for an entity data Post = Post { _ostId :: Key , _ostName :: Text , _ostUserId :: Key } deriving (Show, Read, Generic)*Generates a fromRow instance for a entity. Hinstance FromRow Post where fromRow = Post <$> field <*> field <*> fieldfromRowInstance takes a name of the entity and a list of [a], which is just used to count how many fields does the entity have - nothing else. It generates something similar shown in a code snippet above - a working FromRow instance for that datatype.'Generates field optics for all entities#Generates field optics for a column name :: (FieldOptic "username" fun inType outType inVal outVal) => PolyOptic fun inType outType inVal outVal name = fieldOpticProxy (Proxy :: Proxy "username")kApplies basic constraint depending on sql constraint If columns is marked as primary or unique, add the Unique haskell datatype-Generates a table field instance for a column pinstance TableField Post "user_id" where type TableFieldType Post "user_id" = Key tableFieldLens = ostUserId9Generates required table field instances for all entities'Generates final type for the sql column(Generates initial accessor for the table *allPosts = allRows (Proxy :: Proxy "post")Generates foreign key opticsGenerates foreign key optic xauthor :: ForeignKeyLensProxy (Proxy "blog_post_author_fkey" -> o) => o author = foreignKeyLens @"blog_post_author_fkey"Generates virtual table opticsGenerates virtual table optic posts :: VirtualTable "blog_post_author_fkey" res => Getter' (Entity ('FromDb c) (ForeignKeyTo "blog_post_author_fkey")) res posts = virtualTableLensProxy (Proxy :: Proxy "blog_post_author_fkey")/Generates all constraint declarations from the j(Generates unique key constraint instance instance UniqueConstraint "blog_user_pkey" where type UniqueTable "blog_user_pkey" = User type UniqueFields "blog_user_pkey" = '["id"]Generates primary key instance .instance PrimaryKeyConstraint "blog_user_pkey"Generates foreign key instance instance ForeignKeyConstraint "blog_post_author_fkey" where type ForeignKeyFrom "blog_post_author_fkey" = Post type ForeignKeyFromFields "blog_post_author_fkey" = '["author"] type ForeignKeyTo "blog_post_author_fkey" = User type ForeignKeyToFields "blog_post_author_fkey" = '["id"]0Generates a table instance for an entity from a j "instance Table Post where type TableName Post = "blog_post" type TableFields Post = ["id", "name", "author"] type TableConstraints Post = '[] type TablePrimaryKey Post = 'Nothing type TableRequiredFields Post = ['DynamicDefault 'id, 'Required "name", 'Required "author"]Generates a empty entity unewPost = Entity ('Fresh ['DynamicDefault "id", 'Required "name", 'Required "author"]) newPost = Entity (Post 1 "" 1)Applies Required constraint to list of columnsApplies DynamicDefault constraint to a list of columns4Modifies column type depending on column constraintsGenerates coerce body. See t why this is neededNone!*+,59:;<=DQRT_fUpdates CompileContext] with data. The kind of data that is being added depends on the statement being processed.Updates CompileContext8 with constraints that have been added using alter tablejUpdates compile context from CREATE TABLE statement. Used when CREATE TABLE statement is used. Adds to CompileContext7 any constraints that are found and returns updated 8 and CompileContext+Adds sql row constraints to compile contextYAdds sql constraint to compile context. If a sql constraint is unnamed, it will be named.'Adds sql constraint to compile context.    None!%&*+,-59:;<=DOQRT_f(Generates haskell code from an SQL file./Generates haskell code from multiple SQL files.=Allows you to print generated template haskell code to a fileNone!*+,59:;<=DQRT_fNone!*+,59:;<=DQRT_f\      89:;\`56789:;<HNOZ]^_`bcdefgrst~]Z   ~H`_dc^f]estrgb85679:;<\`:;89  ON None!*+,59:;<=DQRT_f--% ! " " # $ $%&%'%'()*+)*,)-.)*/0123456789:;<=>?@ABCDEFFGHIJKLMNOOPQRSTUVVWXYZ[\]^_`abcdeefghijklmnopqrrstuvwxyz{||}~$"'      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUUVWXYZ[\]^_`abcddefghijklmnopqrstuvwxyz{|}~^e|h                                         ! " # $ % & ' ( ) * + , - . / 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{|}~3      !"#$%&'()*+,-./0123456789:;<=>?@ABACADAEAFAGAHAIJKLMNOPQRSRTRUVWXYZ[\]^_`abcdefghijklmnmompqrqstuvwxyzy{y|y}y~yyyyyyyyyyyy    Cyyyy      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFEGHIHJKLKMKNKOKPKQKRKSKKQKRKKTKUKVKVKWXYXZX[\]^_^_^` a b c d e f g h h i j k k l m m n o p q r r stutvtwtxyzy{y|y}y~yyyyyyyy\yyyyyyyyyyyyyyyy%%%%%%%%%%%%%%%RRRRXXXXXX X X X X XXXXXXXXXXXXXXXXXXX X!X"X#X$X%X&X'X(X)X*X+X,X-X.X/X0X1X2X3456789:;m<m=m>m?m@mAmBCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a`b`c`d`e`f`g`h`ijkAlmnopqrstutvtwxyz{|}{|~{{{{{01010101010101010101010101)data-basic-0.2.0.2-51q9Ngkd7fQG0HPF6HrlcwInternal.Data.Basic.TypeLevelInternal.Data.Basic.Types Data.BasicInternal.Data.Basic.TH.TypesInternal.Data.Basic.TH.Helper#Internal.Data.Basic.TH.SqlToHsTypes Internal.Data.Basic.SqlToHsTypesInternal.Data.Basic.Sql.TypesInternal.Data.Basic.LensInternal.Data.Basic.CompilerInternal.Data.Basic.CompareInternal.Control.Effects.BasicInternal.Data.Basic.CommonInternal.Data.Basic.VirtualInternal.Data.Basic.ForeignInternal.Data.Basic.Replace Internal.Data.Basic.TH.GeneratorInternal.Data.Basic.TH.CompilerInternal.Data.Basic.THData.Basic.ExampleInternal.InterludeDatabaseHsSqlPppInternal.Data.BasicData.Basic.Tutorialbase GHC.TypeLits TypeError:<>::$$:ShowTypeData.SemigroupgetMinMingetMaxMax Data.MonoidgetSumSum ErrorMessage0postgresql-simple-0.5.3.0-6ZaqsM8hV0N2D7SJRxBxIR"Database.PostgreSQL.Simple.FromRowfieldfromRow#Database.PostgreSQL.Simple.InternalconnectPostgreSQLFromRow-simple-effects-0.9.0.0-4Rl8WoqHbHU2GE7KJ7zWwmControl.Effects MonadEffect++ ListToTuple TypeSatisfiesOnMaybeNotNullWithoutIsSubsetNotCheckWithError ErrorText EqualOrErrorElem MappableList mapTypeList AllSatisfy$fTypeSatisfiescxfield$fNotNullafield$fMappableListk:$fMappableListk[] ColumnInfo$sel:_columnInfoText:ColumnInfo$sel:_columnInfoName:ColumnInfo$sel:_columnInfoType:ColumnInfo"$sel:_columnInfoSqlType:ColumnInfo&$sel:_columnInfoConstraints:ColumnInfoColumnConstraintNullConstraintNotNullConstraint ParseError$fMonoidParseError$fSemigroupParseError$fShowParseError$fShowColumnConstraint$fEqColumnConstraint$fShowColumnInfo EntityInfo$sel:_entityInfoText:EntityInfo$sel:_entityInfoName:EntityInfo"$sel:_entityInfoSQLName:EntityInfo$sel:_entityInfoType:EntityInfo)$sel:_entityInfoConstraintList:EntityInfo$$sel:_entityInfoColumnMap:EntityInfocolumnInfoConstraintscolumnInfoNamecolumnInfoSqlTypecolumnInfoTextcolumnInfoType$fEqEntityInfo$fEqColumnInfo$fShowEntityInfoForeignKeyConstraint!$sel:_fkName:ForeignKeyConstraint"$sel:_fkFromT:ForeignKeyConstraint%$sel:_fkFromCols:ForeignKeyConstraint $sel:_fkToT:ForeignKeyConstraint#$sel:_fkToCols:ForeignKeyConstraintentityInfoColumnMapentityInfoConstraintListentityInfoNameentityInfoSQLNameentityInfoTextentityInfoType$fShowForeignKeyConstraintUniqueKeyConstraint $sel:_uqName:UniqueKeyConstraint"$sel:_uqEntity:UniqueKeyConstraint $sel:_uqCols:UniqueKeyConstraint fkFromColsfkFromTfkNamefkToColsfkToT$fShowUniqueKeyConstraintPrimaryKeyConstraint!$sel:_pkName:PrimaryKeyConstraint#$sel:_pkEntity:PrimaryKeyConstraint!$sel:_pkCols:PrimaryKeyConstraintuqColsuqEntityuqName$fShowPrimaryKeyConstraint ParseContext$sel:_entities:ParseContext$sel:_fks:ParseContext$sel:_pks:ParseContext$sel:_uqs:ParseContextpkColspkEntitypkName$fShowParseContext NullValue nullValueentitiesfkspksuqs$fNullValueMaybe$fNullValueText$fNullValueDouble$fNullValue(,)$fNullValueLocalTime$fNullValueTimeOfDay$fNullValueBool$fNullValueInt$fMonoidParseContext$fSemigroupParseContext liftErrorlistToTypeLevel addFieldsaddFieldstandardizeName quasyPluralnameUnnamedConstraintsnameUnnamedConstraintnameConstraintgetNamegetOptionalColumnsgetEntityByNamegetEntityBySQLName getColumn lowerFirst upperFirstgetEntityPrimaryKeycolumnNameToLensNametoHsTypePoint$fToFieldPoint$fFromFieldPoint $fEqPoint $fOrdPoint $fReadPoint $fShowPointSomeFromRowProxy SqlResultSqlExpSelectInsertRawQueryDeleteUpdateGrouping SelectionSelectEverythingSelectExpressionsLimit SqlValueExp SimpleNameSqlFunctionApplication SqlLiteralAggregateFunctionAvgCountOnly ConditionSqlAndSqlOr SqlOperatorIsNullInQualifiedTableQualifiedFieldSqlFunctionName SortDirection Ascending Descending ComparisonLessThan LessOrEqual GreaterThanGreaterOrEqualEqualNotEqual QuerySegmentsToQuery actionToQuery tableToQuerycomparisonToQuery fieldToQueryaggregateFunctionToQuery valueToQueryconditionToQueryorderingToQuery limitToQueryselectionToQuery groupToQuery listToTuple separateBy sqlExpToQuery$fSemigroupCondition$fIsStringQuerySegment$fSemigroupQuerySegment$fMonoidQuerySegment$fSemigroupQuery$fShowQuerySegment$fEqComparison$fOrdComparison$fReadComparison$fShowComparison$fEqSortDirection$fOrdSortDirection$fReadSortDirection$fShowSortDirection$fEqSqlFunctionName$fOrdSqlFunctionName$fReadSqlFunctionName$fShowSqlFunctionName$fEqQualifiedField$fOrdQualifiedField$fReadQualifiedField$fShowQualifiedField$fEqQualifiedTable$fOrdQualifiedTable$fReadQualifiedTable$fShowQualifiedTable$fShowAggregateFunction$fShowSqlValueExp$fShowCondition $fEqLimit $fOrdLimit $fReadLimit $fShowLimit$fShowSelection$fShowGrouping $fShowSqlExpEntity$sel:_getEntity:Entity EntityKindFreshFromDbCachedLive MissingFieldRequiredDynamicDefaultKeyVar VarContext FilteringUpdatingSortingFoldingMapping $fToJSONKey $fFromJSONKey$fEqVar$fOrdVar $fReadVar $fShowVar$fEqKey$fOrdKey $fReadKey $fShowKey$fNumKey$fFromFieldKey $fToFieldKey $fEqEntity $fOrdEntity $fReadEntity $fShowEntity AggregatablegetAggregatingAggregationResultBadAggregateBaseErrorAggregatableBaseAggregationBaseResultgetAggregatingBaseMappable getMapping MapResult MappableBase MapResultBasegetMappingBaseInterpretAsGroupMap GroupMappablegetGroupMappingGroupMapResultGroupMappableBasegetGroupMappingBaseGroupMapResultBaseGroupMappableThingGroupMappableDbExpGroupMappableAggr Groupable AsAggregate getGrouping asAggregateLiteralCollectiongetLiteralCollectionSortable getOrdering SomeDbExpDbExpFieldLiteralExpressionKindFieldExp LiteralExp ConditionExpCompareBoolOp UpdateExpNoUpdateSetFieldAggregateStatement AggregateAMGroupStatementGroupOn DbStatementTableFilterJoinRawSortOnTakeMapAsGroupGroupMap FlattenTuple TupleToListListToSimpleTuple FieldIsNotSetFieldIsGettableFieldIsGettableBoolCanMap CanAggregateSelectionOrSortedSelection ResultTypeFiltered UnfilteredInsertedDeletedUpdatedSortedLimitedGroupedMappedFoldedAndOr TableSetVarsmakeVars VariablesDbResult CanUpdateCanInsertMissingCanInsertFresh CanInsert' CanInsertWithoutMissingFieldsWithoutMissingField WithFieldsSet WithFieldSetMissingFieldsNamesMissingFieldNameForeignKeyFrom ForeignKeyToForeignKeyFromFieldsForeignKeyToFieldsUniqueConstraint UniqueTable UniqueFields TableFieldTableFieldTypetableFieldLens ValueAsDbExp' valueAsDbExp' ValueAsDbExp valueAsDbExp IsDbStatement KindOfDbExpIsDbExpValidConstraint TableName TableFieldsTableConstraintsTablePrimaryKeyTableRequiredFields newEntity SameTypesGetEntityFromValuegetEntityFromObject JSONableFieldAllTypesSatisfy mapFields SetFields MissingFieldsFieldConstraintUnique ForeignKey getEntity toFreshEntity getDbFieldsvarFromUpdateExpgetAggrnameText$fAggregatablea$fAggregatable(,,)$fAggregatable(,)$fAggregatableBasea$fAggregatableBaseOnly$fAggregatableBaseSum$fAggregatableBaseCount$fAggregatableBaseAvg$fAggregatableBaseMin$fAggregatableBaseMax $fMappablea$fMappable(,,,,)$fMappable(,,,)$fMappable(,,) $fMappable(,)$fMappableBaseDbExp$fGroupMappablem$fGroupMappable(,,,,)$fGroupMappable(,,,)$fGroupMappable(,,)$fGroupMappable(,)$fGroupMappableBasea$fGroupable(,,,)$fGroupable(,,)$fGroupable(,)$fGroupableDbExp$fLiteralCollectionTYPE[]x$fLiteralCollectionk(,,)x$fLiteralCollectionk(,)x$fLiteralCollectionTYPEDbExpa$fSortable(,,) $fSortable(,)$fSortableDown$fSortableDbExp$fIsStringDbExp $fNumDbExp$fTableSetVarsctx:$fTableSetVarsctx:0$fTableSetVarsctx:1$fTableSetVarsctx[]$fValueAsDbExp'Falseab$fValueAsDbExp'Trueab$fValueAsDbExpab $fValidConstrainttableForeignKey$fValidConstrainttableUnique$fFromJSONEntity$fGetEntityFromValue:amiss'$fGetEntityFromValue[]amiss$fToJSONEntity$fJSONableFieldan$fToJSONEntity0$fAllTypesSatisfyctable:$fAllTypesSatisfyctable[]$fFromRowEntity $fEqBoolOp $fOrdBoolOp $fReadBoolOp $fShowBoolOpSupportedModifyAccesstransformModifyFunctionGetter' PolyOpticfieldOpticVarExpfieldOpticEntityGetfieldOpticEntityModifyfieldOpticUpdateVarSetfieldOpticUpdatedSet($fSupportedModifyAccessBoolFalse()outVal+$fSupportedModifyAccessBoolTrueoutValoutValFieldOpticProxyfieldOpticProxy fieldOpticfieldOpticEntitySet$fFieldOpticProxyt0$fFieldOpticProxyt00$fFieldOpticProxyt01$fFieldOpticProxyt02$fFieldOpticProxyt03$fFieldOpticProxyt04$fFieldOpticProxyt05$fFieldOpticProxyt06$fFieldOpticProxyt07$fFieldOpticProxyt08$fFieldOpticProxyt09$fFieldOpticProxyt010$fFieldOpticProxyt011$fFieldOpticProxyt012$fFieldOpticProxyt013expToSqlliteralCollectionToSql boolExpToSqlconditionToSql uniqueNames compileTableupdatedExpToSql updateToSql orderingToSql mappingToSqlmapToSql groupMapToSqlgrouppingToSqlgroupStatementToSql foldingToSqlaggregateStatementToSql compileToSqlComparableInDbExpcompareInDbExp>.==./=.<.<=.>=.&&.||.$fComparableInDbExpaDbExp$fComparableInDbExpDbExpbNoOnlynoOnly WithoutOnlyAllHaveFromRowInstancecompositeToTuple AllTables SqlRequest$sel:getSqlRequest:SqlRequestBasicRunSql RunSqlMsg RunSqlRes$sel:getRunSqlRes:RunSqlMsg effectBasic handleBasichandleBasicPsqlrunDbStatementrunAggregateStatementrunMapStatement $fNoOnlya $fNoOnlyOnly$fAllHaveFromRowInstance:$fAllHaveFromRowInstance:0$fAllHaveFromRowInstance:1D:R:EffectBasicmethodmr0$fShowSqlRequestAllRowsLiftedStatement liftDbExpdjoindfilterddeleteallRows allRowsProxyrawQueryinsertdupdatedsortOndtakedgroupOndmapAll dgroupMap$fLiftedStatementfstsm$fLiftedStatementfsts1dbsLiftedAggregationliftAggregationLiftedMapStatementliftMapStatementDmap'dmap'dmapdfoldMap dfoldMapInner$fLiftedAggregationiaggrm$fLiftedAggregationiaggraggStat"$fLiftedAggregationTrueaggraggStat$fLiftedMapStatementfstsm$fLiftedMapStatementfsts1dbs $fDmap't0 $fDmap't00 $fDmap't01 $fDmap't02 VirtualTableAllFieldsMatchallFieldsMatch fieldMatchvirtualTableDbExpLensvirtualTableLensvirtualTableLensProxy"$fAllFieldsMatch::toTablefromTable#$fAllFieldsMatch::toTablefromTable0ForeignKeyLensSetForeignKeyLensGetForeignKeyFieldsMatchforeignKeyFieldsMatchforeignKeyFieldsSetforeignKeyLensGetforeignKeyLensSet$fForeignKeyFieldsMatchfk::$fForeignKeyFieldsMatchfk::0ForeignKeyLensProxyforeignKeyLensProxyforeignKeyLens$fForeignKeyLensProxyt0$fForeignKeyLensProxyt00$fForeignKeyLensProxyt01$fForeignKeyLensProxyt02 SetAllFields setAllFieldsPrimaryKeyMatchprimaryKeyMatchsave$fSetAllFields:table$fSetAllFields[]table$fPrimaryKeyMatch:table$fPrimaryKeyMatch:table0dataConstructorfromRowInstance fieldOpticsfieldConstraint tableField tableFields finalTypeinitialAccessorfkOpticsfkOptic virtualTables virtualTableallConstraintsuniqueConstraintInstanceprimaryKeyInstanceforeignKeyConstraint tableInstance emptyEntityrequireddynamicDefaultapplyConstraint coerceBody nullValue' compileSQLcompileContext compileEntitycompileSQLStatementscompileSQLStatementhandleAlterTableOperations updateContextcompileRowConstraintcompileConstraintcompileConstraint' mkFromFile mkFromFiles printToFileUser$sel:_userId:User$sel:_userName:User$sel:_userLocation:User$fEqUser $fOrdUser $fReadUser $fShowUserPost$sel:_postId:Post$sel:_postName:Post$sel:_postUserId:PostuserId userLocationuserName $fFromRowUser$fTableFieldUser"location"$fTableFieldUser"name"$fTableFieldUser"id"&$fPrimaryKeyConstraint"blog_user_pkey""$fUniqueConstraint"blog_user_pkey" $fTableUser$fEqPost $fOrdPost $fReadPost $fShowPostpostIdpostName postUserIdallUsersallPostsnewUsernewPostpostsidnamelocationauthorIdauthortest1testputQputQLn-$fForeignKeyConstraint"blog_post_author_fkey"$fTableFieldPost"author"$fTableFieldPost"name"$fTableFieldPost"id" $fFromRowPost&$fPrimaryKeyConstraint"blog_post_pkey""$fUniqueConstraint"blog_post_pkey" $fTablePostshowidentityhead unsafeHeadputStrLnprintputTextreadFile foldl1DefGHC.Baseghc-primGHC.PrimseqGHC.Listfilterzip Data.Tuplefstsnd otherwisemap$coerceGHC.Real fromIntegral realToFrac Control.MonadguardjoinGHC.EnumBoundedminBoundmaxBoundEnumenumFrom enumFromThenenumFromThenTo enumFromTofromEnumtoEnumsuccpred GHC.ClassesEq==/= GHC.FloatFloatingpiexplogsqrt**logBasesincostanasinacosatansinhcoshtanhasinhacoshatanh Fractional fromRational/recipIntegral toIntegerquotremdivmodquotRemdivModMonadfailreturn>>=>>Functorfmap<$GHC.NumNum*+-negate fromIntegerabssignumOrd>=minmax><<=compareGHC.ReadReadreadList readsPrecReal toRational RealFloat floatRadix floatDigits floatRange decodeFloat encodeFloatexponent significand scaleFloatisNaN isInfiniteisDenormalizedisNegativeZeroisIEEEatan2RealFracproperFractiontruncateroundceilingfloorGHC.ShowShow showsPrecshowList Data.StringIsString fromString Applicativepure<*>*><* Data.FoldableFoldabletoListfoldrlengthfoldMapnullfoldlfoldl'foldl1sumproductfoldr1maximumminimumelemfoldfoldr'Data.Traversable TraversablemapMsequencetraverse sequenceA Semigroup<>sconcatstimesMonoidmemptymappendmconcat GHC.TypesBoolFalseTrueCharDoubleFloatInt integer-gmpGHC.Integer.TypeIntegerMaybeNothingJustOrderingLTEQGTRationalIOWord Data.EitherEitherLeftRightType Constraint★ Coercible MonadPlusmzeromplus=<<whenliftMliftM2liftM3liftM4liftM5ap Data.Functorvoid Data.FunctionfixmapM_forM_ sequence_msumforMfilterM>=><=<forever mapAndUnzipMzipWithM zipWithM_foldMfoldM_ replicateM replicateM_unless<$!>mfilterControl.Monad.IO.ClassMonadIOliftIOeither mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6Control.Monad.State.Classgetbytestring-0.10.8.1Data.ByteString.Internal ByteString<$>String#text-1.2.2.2-KC7dWoG09dA1F6jKj5GSqhData.Text.InternalText$aeson-1.2.1.0-1kXu3GmfIgPKa7Aptfcr1j Data.AesoneitherDecodeStrict' eitherDecode'eitherDecodeStrict eitherDecode decodeStrict'decode' decodeStrictdecodeencodeData.Aeson.TypesfoldableData.Aeson.Types.ClassGToJSON GToEncodingData.Aeson.Types.ToJSON toEncoding2toJSON2 toEncoding1toJSON1genericLiftToEncodinggenericToEncodinggenericLiftToJSON genericToJSONToArgsNoToArgsTo1ArgsToJSONtoJSON toEncoding toJSONListtoEncodingListKeyValue.= ToJSONKey toJSONKey toJSONKeyListToJSONKeyFunction ToJSONKeyTextToJSONKeyValueToJSON1 liftToJSONliftToJSONListliftToEncodingliftToEncodingListToJSON2 liftToJSON2liftToJSONList2liftToEncoding2liftToEncodingList2Data.Aeson.Encoding.Internalpairs fromEncodingEncodingSeriesData.Aeson.Types.FromJSON.!=.:!.:?.:fromJSONwithBoolwithScientific withNumber withArraywithText withObject parseJSON2 parseJSON1genericLiftParseJSONgenericParseJSON GFromJSON gParseJSONFromArgs NoFromArgs From1ArgsFromJSON parseJSON parseJSONList FromJSONKey fromJSONKeyfromJSONKeyListFromJSONKeyFunctionFromJSONKeyCoerceFromJSONKeyTextFromJSONKeyTextParserFromJSONKeyValue FromJSON1 liftParseJSONliftParseJSONList FromJSON2liftParseJSON2liftParseJSONList2Data.Aeson.Parser.Internaljson'jsonData.Aeson.Types.GenericZeroOneData.Aeson.Types.InternaldefaultOptionsobjectResultErrorSuccessObjectArrayValueNumberNull DotNetTimefromDotNetTime GHC.UnicodeisSpaceisAlphaisDigit Text.ReadreadData.Functor.IdentityIdentity runIdentitydiffoption mtimesDefaultstimesIdempotentstimesIdempotentMonoid stimesMonoidcycle1ArgArgMinArgMaxFirstgetFirstLastgetLast WrappedMonoid WrapMonoid unwrapMonoidOption getOptionData.Bifunctor Bifunctorfirstsecondbimap Debug.Trace traceMarkerIO traceMarker traceEventIO traceEvent traceStack traceShowMtraceM traceShowId traceShowtraceIdtrace putTraceMsgtraceIO Data.ListisSubsequenceOf mapAccumR mapAccumL System.IOreadIOreadLn appendFile writeFileinteract getContentsgetLinegetCharputStrputCharreadsGHC.IO.ExceptionioErrorfindnotElem minimumBy maximumByallanyorand concatMapconcatasum sequenceA_for_ traverse_foldlMfoldrMDualgetDualEndoappEndoAllgetAllAnygetAnyProduct getProductGHC.IOFilePath userErrorIOError Data.Proxy asProxyTypeOfProxyKProxy Data.OldListunwordswordsunlineslinesunfoldrsortOnsortBysort permutations subsequencestailsinitsgroupBygroupdeleteFirstsByunzip7unzip6unzip5unzip4zipWith7zipWith6zipWith5zipWith4zip7zip6zip5zip4genericReplicate genericIndexgenericSplitAt genericDrop genericTake genericLengthinsertBy partition transpose intercalate intersperse intersectBy intersectunionByunion\\deleteBydeletenubBynub isInfixOf isSuffixOf isPrefixOf findIndices findIndex elemIndices elemIndex stripPrefix dropWhileEndData.OrdDown Data.Char isSeparatorisNumberisMarkisLetter digitToInt readLitChar lexLitCharlex readParenText.ParserCombinators.ReadPReadS&ontoTitletoUppertoLowerisLowerisUpperisPrint isControl isAlphaNumisSymbol isPunctuation isHexDigit isOctDigit isAsciiUpper isAsciiLowerisLatin1isAsciigeneralCategoryGeneralCategoryFormatControlUppercaseLetterLowercaseLetterTitlecaseLetterModifierLetter OtherLetterNonSpacingMarkSpacingCombiningMark EnclosingMark DecimalNumber LetterNumber OtherNumberConnectorPunctuationDashPunctuationOpenPunctuationClosePunctuation InitialQuote FinalQuoteOtherPunctuation MathSymbolCurrencySymbolModifierSymbol OtherSymbolSpace LineSeparatorParagraphSeparator Surrogate PrivateUse NotAssignedlcmgcd^^^oddevenGHC.Charchr intToDigit showLitChar showParen showStringshowCharshowsShowSunzip3unzipzipWith3zipWithzip3!!lookupreversebreakspansplitAtdroptake dropWhile takeWhilecycle replicaterepeatiteratescanr1scanrscanl'scanl1scanlfoldl1'initlasttailuncons Data.MaybemapMaybe catMaybes listToMaybe maybeToList fromMaybefromJust isNothingisJustmaybeuncurrycurrysubtractasTypeOfuntil$!flip.constordGHC.Err undefinederrorWithoutStackTraceerror&&||not"lens-4.15.3-GRH811MbksMBOUEHeCzPzdControl.Lens.TH makeLenses lensRulesControl.Lens.Fold^?Control.Lens.Getter^.viewControl.Lens.Setter.~%~modify'transformers-0.5.2.0Control.Monad.Trans.State.Lazy evalState(string-conv-0.1.2-GrkAjRoWmiAIOB1vrXZLfhData.String.ConvconvSLconvStoSLtoSLeniencyStrictLenient StringConvstrConvFromJust FieldNullErrNotMaybeIfIsTrue%hssqlppp-0.6.0-AcNdTH3MfMV6WW6jLuWrlY'Database.HsSqlPpp.Internals.AstInternalNameTypeNametemplate-haskellLanguage.Haskell.TH.SyntaxapplyColumnConstraintscolumnTypeToHs handleEffectMsgOrResMsgResEffecteffectEffectWithKindgetEffectWithKind EffectHandlerunpackEffectHandler MonadEffects