!}Or      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq None+"#&',.01245678=>?@ACFHJMPRSUVX_`dJrpostgresql-syntaxCompose a monad, which attempts to extend a value, based on the following input. It does that recursively until the suffix alternative fails.{stuvwxyz{|}~      !"#$%&'()*+,-./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 c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 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 { | } ~  rNone+"#&',.01245678=>?@ACFHJMPRSUVX_`df postgresql-syntaxBAs per the following comment from the original scanner definition:X/* * Likewise, if what we have left is two chars, and * those match the tokens ">=", " =","=`", "<>" or * "!=", then we must return the appropriate token * rather than the generic Op. */   None+"#&',.01245678=>?@ACFHJMPRSUVX_`dj postgresql-syntax+intersperseFoldMap ", " id (fromList ["a"])"a"5intersperseFoldMap ", " id (fromList ["a", "b", "c"]) "a, b, c" None+"#&',.01245678=>?@ACFHJMPRSUVX_`drg postgresql-syntaxLifted megaparsec's  . postgresql-syntaxLifted megaparsec's  . postgresql-syntaxLifted megaparsec's  . postgresql-syntaxLifted megaparsec's  . postgresql-syntaxLifted megaparsec's  . postgresql-syntaxLifted megaparsec's  . postgresql-syntaxLifted megaparsec's  . postgresql-syntaxLifted megaparsec's  . postgresql-syntaxLifted megaparsec's  .  None+"#&',.01245678=>?@ACFHJMPRSUVX_`dt6    None+"#&',.01245678=>?@ACFHJMPRSUVX_`dwS postgresql-syntax)test = oneOf [(==3), (==7), (==3), (==5)]test 1Falsetest 3Truetest 5True         None+"#&',.01245678=>?@ACFHJMPRSUVX_`d apostgresql-syntaxVTypename definition extended with custom question-marks for nullability specification.YTo match the standard Postgres syntax simply interpret their presence as a parsing error.postgresql-syntax(AexprConst: | Iconst | FCONST | Sconst | BCONST | XCONST | func_name Sconst | func_name '(' func_arg_list opt_sort_clause ')' Sconst | ConstTypename Sconst | ConstInterval Sconst opt_interval | ConstInterval '(' Iconst ')' Sconst | TRUE_P | FALSE_P | NULL_Ppostgresql-syntax&sort_clause: | ORDER BY sortby_list4sortby_list: | sortby | sortby_list ',' sortbypostgresql-syntax window_specification: | '(' opt_existing_window_name opt_partition_clause opt_sort_clause opt_frame_clause ')' opt_existing_window_name: | ColId | EMPTY opt_partition_clause: | PARTITION BY expr_list | EMPTY postgresql-syntax 6window_definition: | ColId AS window_specification postgresql-syntax window_clause: | WINDOW window_definition_list | EMPTY window_definition_list: | window_definition | window_definition_list ',' window_definition postgresql-syntax -having_clause: | HAVING a_expr | EMPTY postgresql-syntaxCovers these parts of spec: Ysimple_select: | SELECT opt_all_clause opt_target_list into_clause from_clause where_clause group_clause having_clause window_clause | SELECT distinct_clause target_list into_clause from_clause where_clause group_clause having_clause window_clause distinct_clause: | DISTINCT | DISTINCT ON '(' expr_list ')' postgresql-syntax :select_clause: | simple_select | select_with_parens postgresql-syntaxCovers the following cases: select_no_parens: | simple_select | select_clause sort_clause | select_clause opt_sort_clause for_locking_clause opt_select_limit | select_clause opt_sort_clause select_limit opt_for_locking_clause | with_clause select_clause | with_clause select_clause sort_clause | with_clause select_clause opt_sort_clause for_locking_clause opt_select_limit | with_clause select_clause opt_sort_clause select_limit opt_for_locking_clause bpostgresql-syntaxSETOF postgresql-syntaxQuestion mark postgresql-syntax6Array dimensions possibly followed by a question mark  "! #-,+*)('&%$.10/2435BA@?>=<;:9876CEDFHGIJLKMONPQRSTUV\[ZYXW]^`_abcgfedhikjlmonpqrstuvwxy{z|}~      !$#"%'&(43210/.-,+*)5<;:9876=QPONMLKJIHGFEDCBA@?>RSUTVWYXZ^]\[_ba`cedfjihgklmnopqrstuvxwyz{|}~          ~|}z{yvxwtusrqpnomklfjihgced_ba`Z^]\[WYXVSUTR=QPONMLKJIHGFEDCBA@?>5<;:9876(43210/.-,+*)%'&!$#"      }~|y{zxwvutrspqmonlikjhcgfedab^`_]V\[ZYXWTUSRQPMONJLKIFHGCED5BA@?>=<;:9876243.10/#-,+*)('&%$"!  None+"#&',.01245678=>?@ACFHJMPRSUVX_`d'      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None+"#&',.01245678=>?@ACFHJMPRSUVX_`d}None+"#&',.01245678=>?@ACFHJMPRSUVX_`dݳ postgresql-syntax)testParser (quotedString '\'') "'abc''d'""abc'd"postgresql-syntaxtest = testParser selectStmttest "select id from as"... |1 | select id from as | ^mReserved keyword "as" used as an identifier. If that's what you intend, you have to wrap it in double quotes.postgresql-syntax'The one that doesn't start with "WITH".postgresql-syntaxtestParser targetEl "a.b as c"AliasedExprTargetEl (CExprAExpr (ColumnrefCExpr (Columnref (UnquotedIdent "a") (Just (AttrNameIndirectionEl (UnquotedIdent "b") :| []))))) (UnquotedIdent "c")postgresql-syntax2testParser tableRef "a left join b on (a.i = b.i)".JoinTableRef (MethJoinedTable (QualJoinMeth...postgresql-syntaxNotice that the tree constructed by this parser does not reflect the precedence order of Postgres. For the purposes of this library it simply doesn't matter, so we're not bothering with that.Composite on the right: >>> testParser aExpr "a = b :: int4" SymbolicBinOpAExpr (CExprAExpr (ColumnrefCExpr (Columnref (UnquotedIdent "a") Nothing))) (MathSymbolicExprBinOp EqualsMathOp) (TypecastAExpr (CExprAExpr (ColumnrefCExpr (Columnref (UnquotedIdent "b") Nothing))) (Typename False (GenericTypeSimpleTypename (GenericType (UnquotedIdent "int4") Nothing Nothing)) False Nothing))Composite on the left: >>> testParser aExpr "a = b :: int4 and c" SymbolicBinOpAExpr (CExprAExpr (ColumnrefCExpr (Columnref (UnquotedIdent "a") Nothing))) (MathSymbolicExprBinOp EqualsMathOp) (AndAExpr (TypecastAExpr (CExprAExpr (ColumnrefCExpr (Columnref (UnquotedIdent "b") Nothing))) (Typename False (GenericTypeSimpleTypename (GenericType (UnquotedIdent "int4") Nothing Nothing)) False Nothing)) (CExprAExpr (ColumnrefCExpr (Columnref (UnquotedIdent "c") Nothing))))/postgresql-syntax&testParser aexprConst "32948023849023"IAexprConst 32948023849023!testParser aexprConst "'abc''de'"SAexprConst "abc'de" testParser aexprConst "23.43234"FAexprConst 23.43234*testParser aexprConst "32423423.324324872" FAexprConst 3.2423423324324872e7testParser aexprConst "NULL"NullAexprConstPpostgresql-syntaxtestParser qualifiedName "a.b"]IndirectedQualifiedName (UnquotedIdent "a") (AttrNameIndirectionEl (UnquotedIdent "b") :| [])testParser qualifiedName "a.-"...+expecting '*', column label, or white spacebpostgresql-syntaxExpected keyword cpostgresql-syntaxEConsume a keyphrase, ignoring case and types of spaces between words.      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq  !"#$%&'())*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeefghijklmnopqqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnnoppqrstuuvwxyzz{{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~?M3    &)*,-./ !"#$124567:BHIJCDOQRSTUVWXYZ[\]^_KLN<=>?@A`abcefghijklmnpvqoytuxrswz}~      !"#$%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4567898:8;8<8=8>8?8@ABCDEFGHIJIKILIMINOPQRSTUVWXYZ[\]^_`abcdefgfhfifjklkmknkokpqrstsuvwvxyzy{|}~     ZZ !!"##$%&&'(()*+,--./%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`klmlnlolplqlrlstutvtwtxyzy{y|y}~~~~      !"#$%&'()*+,-,.,/,012131415161718191:1;1<1=>?>@>A>B>CDEDFDGDHIJIKILIMINIOIPIQIRSTSUSVSWSXSYSZS[S\S]S^_`abacadadefghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzg{g|g}g~gggggggggggggggg     , !"#"$"%"&"'"()*+,+-+.+/+0123456789:;<=<><?<@ABACADAEAFAGAHAIAJAKALAMANAOAPQRSTUVWXYSZ[Z\Z\Z]^_^`^a^b^c^d^e^f^g^h^ijkjljmjnjojpjqjrjsjtjujvjwjxjyjzj{j|j}j~jjjqqqqq2                                                               !  "  #  $  %  & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B CI DI EI FI GI H I J I K I L I M I N O P O Q O R O S T U V W X Y Z [ Z \ Z ] Z ^ Z _ Z ` Z a Z b Z c Z d Z e Z f Z g Z h Z i Z j Z k Z l Z m Z n Z o Z p Z q Z r Z s Z t Z u Z v Z w Z x Z y Z z Z { Z | Z } Z ~ Z  Z  Z  Z  Z  Z  Z  Z  Z  Z  Z  Z  Z  Z  Z                     g                                      f f f f f f f                                                         8                       ! " # $ % & ' ( ) ( * ( + ,^ -^ - . / 0 1 2 3 4 5 6 7 8 9 7 8 : ; < = ; > ? ; @ A ; B C ; D E F G H F G I F G J F G K F G L F G M F G N F G O F G P F G Q F G R S T U V W X Y Z [ Y Z [ \ ] ^ \ ] ^ \ ] _ \ ] ` \ ] a \ ] b \ ] b \ ] c \ ] d \ ] d \ ] e \ ] f \ ] f \ ] g \ ] h \ ] h \ ] i \ ] j \ ] k \ ] l \ ] m \ ] n \ ] o \ ] p \ ] q \ ] r \ ] s \ ] t \ ] u \ ] v \ ] w \ ] x \ ] y \ ] z \ ] { \ ] | \ ] } \ ] ~ \ ]  \ ] \ ] \ ] \ ] S                     ?          +postgresql-syntax-0.2-30AfQ9Zpu7pTKrGcQytWAPostgresqlSyntax.KeywordSetPostgresqlSyntax.AstPostgresqlSyntax.RenderingPostgresqlSyntax.ValidationPostgresqlSyntax.ParsingPostgresqlSyntax.Prelude PostgresqlSyntax.Extras.NonEmpty(PostgresqlSyntax.Extras.HeadedMegaparsec Megaparsecspacespace1charchar'stringstring'PostgresqlSyntax.CharSetPostgresqlSyntax.PredicatekeywordunreservedKeywordcolNameKeywordtypeFuncNameKeywordreservedKeyword symbolicBinOp lexicalBinOpcolIdtypeFunctionNamenonOpmathOp NullsOrderFirstNullsOrderLastNullsOrderAscDesc AscAscDesc DescAscDescClassCollate IndexElemDefIdIndexElemDefFuncIndexElemDefExprIndexElemDef IndexElem IndexParams SubqueryOp AllSubqueryOp AnySubqueryOpLikeSubqueryOpIlikeSubqueryOp BExprIsOpDistinctFromBExprIsOp OfBExprIsOpDocumentBExprIsOpAExprReversableOpNullAExprReversableOpTrueAExprReversableOpFalseAExprReversableOpUnknownAExprReversableOpDistinctFromAExprReversableOpOfAExprReversableOpBetweenAExprReversableOp!BetweenSymmetricAExprReversableOpInAExprReversableOpDocumentAExprReversableOpVerbalExprBinOpLikeVerbalExprBinOpIlikeVerbalExprBinOpSimilarToVerbalExprBinOpSymbolicExprBinOpMathSymbolicExprBinOpQualSymbolicExprBinOpMathOp PlusMathOp MinusMathOpAsteriskMathOp SlashMathOp PercentMathOp ArrowUpMathOpArrowLeftMathOpArrowRightMathOp EqualsMathOpLessEqualsMathOpGreaterEqualsMathOpArrowLeftArrowRightMathOpExclamationEqualsMathOpAllOpOpAllOp MathAllOp AnyOperatorAllOpAnyOperatorQualifiedAnyOperatorOp QualAllOp AllQualAllOp AnyQualAllOpQualOpOpQualOpOperatorQualOpTypeList TypeModifiersAttrNameAttrs GenericTypeSimpleTypenameGenericTypeSimpleTypenameNumericSimpleTypenameBitSimpleTypenameCharacterSimpleTypenameConstDatetimeSimpleTypenameConstIntervalSimpleTypename ArrayBoundsTypenameArrayDimensionsBoundsTypenameArrayDimensionsExplicitTypenameArrayDimensionsTypename IndirectionElAttrNameIndirectionElAllIndirectionElExprIndirectionElSliceIndirectionEl Indirection QualifiedNameSimpleQualifiedNameIndirectedQualifiedNameTypeFunctionNameFuncName TypeFuncNameIndirectedFuncNameAnyName Columnref CursorNameNameListNameColLabelColIdIdent QuotedIdent UnquotedIdentIntervalSecondInterval YearInterval MonthInterval DayInterval HourIntervalMinuteIntervalSecondIntervalYearToMonthIntervalDayToHourIntervalDayToMinuteIntervalDayToSecondIntervalHourToMinuteIntervalHourToSecondIntervalMinuteToSecondIntervalTimezone ConstDatetimeTimestampConstDatetimeTimeConstDatetime CharacterCharacterCharacter CharCharacterVarcharCharacterNationalCharacterCharacterNationalCharCharacterNcharCharacterConstCharacter OptVaryingConstBitBitNumeric IntNumericIntegerNumericSmallintNumeric BigintNumeric RealNumeric FloatNumericDoublePrecisionNumericDecimalNumeric DecNumericNumericNumericBooleanNumeric ConstTypenameNumericConstTypenameConstBitConstTypenameConstCharacterConstTypenameConstDatetimeConstTypename FuncConstArgs AexprConst IAexprConst FAexprConst SAexprConst BAexprConst XAexprConstFuncAexprConstConstTypenameAexprConstStringIntervalAexprConstIntIntervalAexprConstBoolAexprConstNullAexprConstXconstBconstFconstIconstSconst FuncArgExprExprFuncArgExprColonEqualsFuncArgExprEqualsGreaterFuncArgExprFuncApplicationParamsNormalFuncApplicationParamsVariadicFuncApplicationParamsStarFuncApplicationParamsFuncApplication WhenClause CaseDefaultWhenClauseListCaseArgCaseExprTrimListExprFromExprListTrimListFromExprListTrimListExprListTrimList TrimModifierBothTrimModifierLeadingTrimModifierTrailingTrimModifier SubstrFor SubstrFromSubstrListFromForFromForSubstrListFromForForFromSubstrListFromForFromSubstrListFromForForSubstrListFromFor SubstrListExprSubstrListExprListSubstrList PositionListOverlayPlacing OverlayList ExtractArgIdentExtractArgYearExtractArgMonthExtractArg DayExtractArgHourExtractArgMinuteExtractArgSecondExtractArgSconstExtractArg ExtractListFuncExprCommonSubexpr!CollationForFuncExprCommonSubexpr CurrentDateFuncExprCommonSubexpr CurrentTimeFuncExprCommonSubexpr%CurrentTimestampFuncExprCommonSubexprLocalTimeFuncExprCommonSubexpr#LocalTimestampFuncExprCommonSubexpr CurrentRoleFuncExprCommonSubexpr CurrentUserFuncExprCommonSubexpr SessionUserFuncExprCommonSubexprUserFuncExprCommonSubexpr#CurrentCatalogFuncExprCommonSubexpr"CurrentSchemaFuncExprCommonSubexprCastFuncExprCommonSubexprExtractFuncExprCommonSubexprOverlayFuncExprCommonSubexprPositionFuncExprCommonSubexprSubstringFuncExprCommonSubexprTreatFuncExprCommonSubexprTrimFuncExprCommonSubexprNullIfFuncExprCommonSubexprCoalesceFuncExprCommonSubexprGreatestFuncExprCommonSubexprLeastFuncExprCommonSubexpr OverClauseWindowOverClauseColIdOverClause FilterClauseWithinGroupClauseFuncExprWindowlessApplicationFuncExprWindowlessCommonSubexprFuncExprWindowlessFuncExprApplicationFuncExprSubexprFuncExpr ImplicitRow ExplicitRowRowExplicitRowRowImplicitRowRow ArrayExprList ArrayExprExprListArrayExprArrayExprListArrayExprEmptyArrayExprSubType AnySubType SomeSubType AllSubTypeInExpr SelectInExprExprListInExprCExprColumnrefCExprAexprConstCExpr ParamCExpr InParensCExpr CaseCExpr FuncCExprSelectWithParensCExpr ExistsCExpr ArrayCExprExplicitRowCExprImplicitRowCExpr GroupingCExprBExpr CExprBExpr TypecastBExpr PlusBExpr MinusBExprSymbolicBinOpBExpr QualOpBExpr IsOpBExprAExpr CExprAExpr TypecastAExpr CollateAExprAtTimeZoneAExpr PlusAExpr MinusAExprSymbolicBinOpAExprPrefixQualOpAExprSuffixQualOpAExprAndAExprOrAExprNotAExprVerbalExprBinOpAExprReversableOpAExpr IsnullAExpr NotnullAExpr OverlapsAExpr SubqueryAExpr UniqueAExpr DefaultAExprExprListWhereOrCurrentClauseExprWhereOrCurrentClauseCursorWhereOrCurrentClause WhereClauseJoinQual UsingJoinQual OnJoinQualJoinType FullJoinType LeftJoinType RightJoinType InnerJoinTypeJoinMeth CrossJoinMeth QualJoinMethNaturalJoinMeth JoinedTableInParensJoinedTableMethJoinedTableFuncAliasClauseAliasFuncAliasClauseAsFuncAliasClauseAsColIdFuncAliasClauseColIdFuncAliasClause AliasClause CollateClauseTableFuncElementTableFuncElementList OptOrdinality ColDefList RowsfromList RowsfromItem FuncTableFuncExprFuncTableRowsFromFuncTableRepeatableClauseTablesampleClauseRelationExprOptAlias RelationExprSimpleRelationExprOnlyRelationExprTableRefRelationExprTableRef FuncTableRefSelectTableRef JoinTableRefFromListForLockingStrengthUpdateForLockingStrengthNoKeyUpdateForLockingStrengthShareForLockingStrengthKeyForLockingStrengthForLockingItemForLockingClauseItemsForLockingClauseReadOnlyForLockingClause OffsetClauseExprOffsetClauseFetchFirstOffsetClauseSelectLimitValueExprSelectLimitValueAllSelectLimitValueSelectFetchFirstValueExprSelectFetchFirstValueNumSelectFetchFirstValue LimitClauseLimitLimitClauseFetchOnlyLimitClause SelectLimitLimitOffsetSelectLimitOffsetLimitSelectLimitLimitSelectLimitOffsetSelectLimitSortBy UsingSortBy AscDescSortBy SortClause ValuesClauseWindowExclusionClauseCurrentRowWindowExclusionClauseGroupWindowExclusionClauseTiesWindowExclusionClauseNoOthersWindowExclusionClause FrameBoundUnboundedPrecedingFrameBoundUnboundedFollowingFrameBoundCurrentRowFrameBoundPrecedingFrameBoundFollowingFrameBound FrameExtentSingularFrameExtentBetweenFrameExtentFrameClauseModeRangeFrameClauseModeRowsFrameClauseModeGroupsFrameClauseMode FrameClausePartitionClauseExistingWindowNameWindowSpecificationWindowDefinition WindowClause HavingClause GroupByItemExprGroupByItemEmptyGroupingSetGroupByItemRollupGroupByItemCubeGroupByItemGroupingSetsGroupByItem GroupClause FromClauseOptTempTableNameTemporaryOptTempTableNameTempOptTempTableNameLocalTemporaryOptTempTableNameLocalTempOptTempTableNameGlobalTemporaryOptTempTableNameGlobalTempOptTempTableNameUnloggedOptTempTableNameTableOptTempTableNameQualifedOptTempTableName IntoClauseCommonTableExpr WithClause SelectBinOpUnionSelectBinOpIntersectSelectBinOpExceptSelectBinOpTargetElAliasedExprTargetElImplicitlyAliasedExprTargetEl ExprTargetElAsteriskTargetEl TargetList TargetingNormalTargeting AllTargetingDistinctTargeting SimpleSelectNormalSimpleSelectValuesSimpleSelectTableSimpleSelectBinSimpleSelect SelectClauseSelectNoParensSelectWithParensNoParensSelectWithParensWithParensSelectWithParens SelectStmt UsingClause DeleteStmt SetTargetList SetTarget SetClauseTargetSetClauseTargetListSetClause SetClauseList UpdateStmtReturningClauseConfExpr WhereConfExprConstraintConfExpr OnConflictDoUpdateOnConflictDoNothingOnConflictDo OnConflictInsertColumnItemInsertColumnList OverrideKindUserOverrideKindSystemOverrideKind InsertRestSelectInsertRestDefaultValuesInsertRest InsertTarget InsertStmtPreparableStmtSelectPreparableStmtInsertPreparableStmtUpdatePreparableStmtDeletePreparableStmt$fShowOverrideKind$fGenericOverrideKind$fEqOverrideKind$fOrdOverrideKind$fEnumOverrideKind$fBoundedOverrideKind$fShowSelectBinOp$fGenericSelectBinOp$fEqSelectBinOp$fOrdSelectBinOp$fShowFrameClauseMode$fGenericFrameClauseMode$fEqFrameClauseMode$fOrdFrameClauseMode$fShowWindowExclusionClause$fGenericWindowExclusionClause$fEqWindowExclusionClause$fOrdWindowExclusionClause$fShowForLockingStrength$fGenericForLockingStrength$fEqForLockingStrength$fOrdForLockingStrength$fShowJoinType$fGenericJoinType $fEqJoinType $fOrdJoinType $fShowSubType$fGenericSubType $fEqSubType $fOrdSubType $fEnumSubType$fBoundedSubType$fShowTrimModifier$fGenericTrimModifier$fEqTrimModifier$fOrdTrimModifier$fEnumTrimModifier$fBoundedTrimModifier$fShowCharacter$fGenericCharacter $fEqCharacter$fOrdCharacter$fShowConstCharacter$fGenericConstCharacter$fEqConstCharacter$fOrdConstCharacter$fShowConstDatetime$fGenericConstDatetime$fEqConstDatetime$fOrdConstDatetime$fShowInterval$fGenericInterval $fEqInterval $fOrdInterval $fShowIdent$fGenericIdent $fEqIdent $fOrdIdent$fShowExtractArg$fGenericExtractArg$fEqExtractArg$fOrdExtractArg$fShowAliasClause$fGenericAliasClause$fEqAliasClause$fOrdAliasClause$fShowTypenameArrayDimensions $fGenericTypenameArrayDimensions$fEqTypenameArrayDimensions$fOrdTypenameArrayDimensions $fShowAnyName$fGenericAnyName $fEqAnyName $fOrdAnyName $fShowMathOp$fGenericMathOp $fEqMathOp $fOrdMathOp $fEnumMathOp$fBoundedMathOp $fShowAllOp$fGenericAllOp $fEqAllOp $fOrdAllOp$fShowAnyOperator$fGenericAnyOperator$fEqAnyOperator$fOrdAnyOperator $fShowQualOp$fGenericQualOp $fEqQualOp $fOrdQualOp$fShowQualAllOp$fGenericQualAllOp $fEqQualAllOp$fOrdQualAllOp$fShowSymbolicExprBinOp$fGenericSymbolicExprBinOp$fEqSymbolicExprBinOp$fOrdSymbolicExprBinOp$fShowVerbalExprBinOp$fGenericVerbalExprBinOp$fEqVerbalExprBinOp$fOrdVerbalExprBinOp$fEnumVerbalExprBinOp$fBoundedVerbalExprBinOp$fShowSubqueryOp$fGenericSubqueryOp$fEqSubqueryOp$fOrdSubqueryOp $fShowAscDesc$fGenericAscDesc $fEqAscDesc $fOrdAscDesc $fEnumAscDesc$fBoundedAscDesc$fShowNullsOrder$fGenericNullsOrder$fEqNullsOrder$fOrdNullsOrder$fEnumNullsOrder$fBoundedNullsOrder $fShowSortBy$fGenericSortBy $fEqSortBy $fOrdSortBy $fShowAExpr$fGenericAExpr $fEqAExpr $fOrdAExpr$fShowAExprReversableOp$fGenericAExprReversableOp$fEqAExprReversableOp$fOrdAExprReversableOp$fShowTypename$fGenericTypename $fEqTypename $fOrdTypename$fShowSimpleTypename$fGenericSimpleTypename$fEqSimpleTypename$fOrdSimpleTypename$fShowGenericType$fGenericGenericType$fEqGenericType$fOrdGenericType $fShowBit $fGenericBit$fEqBit$fOrdBit $fShowNumeric$fGenericNumeric $fEqNumeric $fOrdNumeric $fShowInExpr$fGenericInExpr $fEqInExpr $fOrdInExpr$fShowSelectWithParens$fGenericSelectWithParens$fEqSelectWithParens$fOrdSelectWithParens$fShowSelectNoParens$fGenericSelectNoParens$fEqSelectNoParens$fOrdSelectNoParens$fShowForLockingClause$fGenericForLockingClause$fEqForLockingClause$fOrdForLockingClause$fShowForLockingItem$fGenericForLockingItem$fEqForLockingItem$fOrdForLockingItem$fShowQualifiedName$fGenericQualifiedName$fEqQualifiedName$fOrdQualifiedName$fShowIndirectionEl$fGenericIndirectionEl$fEqIndirectionEl$fOrdIndirectionEl$fShowSelectLimit$fGenericSelectLimit$fEqSelectLimit$fOrdSelectLimit$fShowOffsetClause$fGenericOffsetClause$fEqOffsetClause$fOrdOffsetClause$fShowSelectFetchFirstValue$fGenericSelectFetchFirstValue$fEqSelectFetchFirstValue$fOrdSelectFetchFirstValue $fShowCExpr$fGenericCExpr $fEqCExpr $fOrdCExpr$fShowColumnref$fGenericColumnref $fEqColumnref$fOrdColumnref$fShowAexprConst$fGenericAexprConst$fEqAexprConst$fOrdAexprConst$fShowFuncName$fGenericFuncName $fEqFuncName $fOrdFuncName$fShowConstTypename$fGenericConstTypename$fEqConstTypename$fOrdConstTypename$fShowFuncConstArgs$fGenericFuncConstArgs$fEqFuncConstArgs$fOrdFuncConstArgs$fShowFuncArgExpr$fGenericFuncArgExpr$fEqFuncArgExpr$fOrdFuncArgExpr$fShowCaseExpr$fGenericCaseExpr $fEqCaseExpr $fOrdCaseExpr$fShowWhenClause$fGenericWhenClause$fEqWhenClause$fOrdWhenClause$fShowFuncExpr$fGenericFuncExpr $fEqFuncExpr $fOrdFuncExpr$fShowFuncApplication$fGenericFuncApplication$fEqFuncApplication$fOrdFuncApplication$fShowFuncApplicationParams$fGenericFuncApplicationParams$fEqFuncApplicationParams$fOrdFuncApplicationParams$fShowFuncExprCommonSubexpr$fGenericFuncExprCommonSubexpr$fEqFuncExprCommonSubexpr$fOrdFuncExprCommonSubexpr$fShowTrimList$fGenericTrimList $fEqTrimList $fOrdTrimList$fShowSubstrList$fGenericSubstrList$fEqSubstrList$fOrdSubstrList$fShowSubstrListFromFor$fGenericSubstrListFromFor$fEqSubstrListFromFor$fOrdSubstrListFromFor$fShowPositionList$fGenericPositionList$fEqPositionList$fOrdPositionList $fShowBExpr$fGenericBExpr $fEqBExpr $fOrdBExpr$fShowBExprIsOp$fGenericBExprIsOp $fEqBExprIsOp$fOrdBExprIsOp$fShowOverlayList$fGenericOverlayList$fEqOverlayList$fOrdOverlayList$fShowExtractList$fGenericExtractList$fEqExtractList$fOrdExtractList$fShowOverClause$fGenericOverClause$fEqOverClause$fOrdOverClause$fShowWindowSpecification$fGenericWindowSpecification$fEqWindowSpecification$fOrdWindowSpecification$fShowFrameClause$fGenericFrameClause$fEqFrameClause$fOrdFrameClause$fShowFrameExtent$fGenericFrameExtent$fEqFrameExtent$fOrdFrameExtent$fShowFrameBound$fGenericFrameBound$fEqFrameBound$fOrdFrameBound$fShowImplicitRow$fGenericImplicitRow$fEqImplicitRow$fOrdImplicitRow$fShowArrayExpr$fGenericArrayExpr $fEqArrayExpr$fOrdArrayExpr$fShowLimitClause$fGenericLimitClause$fEqLimitClause$fOrdLimitClause$fShowSelectLimitValue$fGenericSelectLimitValue$fEqSelectLimitValue$fOrdSelectLimitValue$fShowWithClause$fGenericWithClause$fEqWithClause$fOrdWithClause$fShowCommonTableExpr$fGenericCommonTableExpr$fEqCommonTableExpr$fOrdCommonTableExpr$fShowPreparableStmt$fGenericPreparableStmt$fEqPreparableStmt$fOrdPreparableStmt$fShowDeleteStmt$fGenericDeleteStmt$fEqDeleteStmt$fOrdDeleteStmt$fShowWhereOrCurrentClause$fGenericWhereOrCurrentClause$fEqWhereOrCurrentClause$fOrdWhereOrCurrentClause$fShowRelationExprOptAlias$fGenericRelationExprOptAlias$fEqRelationExprOptAlias$fOrdRelationExprOptAlias$fShowRelationExpr$fGenericRelationExpr$fEqRelationExpr$fOrdRelationExpr$fShowTableRef$fGenericTableRef $fEqTableRef $fOrdTableRef$fShowJoinedTable$fGenericJoinedTable$fEqJoinedTable$fOrdJoinedTable$fShowJoinMeth$fGenericJoinMeth $fEqJoinMeth $fOrdJoinMeth$fShowJoinQual$fGenericJoinQual $fEqJoinQual $fOrdJoinQual$fShowFuncAliasClause$fGenericFuncAliasClause$fEqFuncAliasClause$fOrdFuncAliasClause$fShowTableFuncElement$fGenericTableFuncElement$fEqTableFuncElement$fOrdTableFuncElement$fShowFuncTable$fGenericFuncTable $fEqFuncTable$fOrdFuncTable$fShowFuncExprWindowless$fGenericFuncExprWindowless$fEqFuncExprWindowless$fOrdFuncExprWindowless$fShowRowsfromItem$fGenericRowsfromItem$fEqRowsfromItem$fOrdRowsfromItem$fShowTablesampleClause$fGenericTablesampleClause$fEqTablesampleClause$fOrdTablesampleClause$fShowTargetEl$fGenericTargetEl $fEqTargetEl $fOrdTargetEl$fShowUpdateStmt$fGenericUpdateStmt$fEqUpdateStmt$fOrdUpdateStmt$fShowSetClause$fGenericSetClause $fEqSetClause$fOrdSetClause$fShowSetTarget$fGenericSetTarget $fEqSetTarget$fOrdSetTarget$fShowInsertStmt$fGenericInsertStmt$fEqInsertStmt$fOrdInsertStmt$fShowOnConflict$fGenericOnConflict$fEqOnConflict$fOrdOnConflict$fShowConfExpr$fGenericConfExpr $fEqConfExpr $fOrdConfExpr$fShowIndexElem$fGenericIndexElem $fEqIndexElem$fOrdIndexElem$fShowIndexElemDef$fGenericIndexElemDef$fEqIndexElemDef$fOrdIndexElemDef$fShowOnConflictDo$fGenericOnConflictDo$fEqOnConflictDo$fOrdOnConflictDo$fShowInsertRest$fGenericInsertRest$fEqInsertRest$fOrdInsertRest$fShowInsertColumnItem$fGenericInsertColumnItem$fEqInsertColumnItem$fOrdInsertColumnItem$fShowInsertTarget$fGenericInsertTarget$fEqInsertTarget$fOrdInsertTarget$fShowSimpleSelect$fGenericSimpleSelect$fEqSimpleSelect$fOrdSimpleSelect$fShowWindowDefinition$fGenericWindowDefinition$fEqWindowDefinition$fOrdWindowDefinition$fShowGroupByItem$fGenericGroupByItem$fEqGroupByItem$fOrdGroupByItem$fShowOptTempTableName$fGenericOptTempTableName$fEqOptTempTableName$fOrdOptTempTableName$fShowTargeting$fGenericTargeting $fEqTargeting$fOrdTargeting $fShowRow $fGenericRow$fEqRow$fOrdRow toByteStringtoTexttext commaNonEmpty spaceNonEmptylexemes optLexemesinParens inBrackets prefixMaybe suffixMaybepreparableStmt insertStmt insertTarget insertRestinsertRestOverriding overrideKindinsertColumnListinsertColumnItem onConflict onConflictDoconfExprreturningClause updateStmt setClauseList setClause setTarget setTargetList deleteStmt usingClause selectStmtselectNoParensselectWithParens withClausecommonTableExprmaterialization selectLimit limitClause firstOrNext rowOrRowsselectFetchFirstValue intOrFloatselectLimitValue offsetClauseforLockingClauseforLockingItemforLockingStrengthlockedRelsList nowaitOrSkip selectClause simpleSelect selectBinOp targeting targetListonExpressionsClausetargetEl intoClauseoptTempTableName fromClausefromListtableRef relationExprrelationExprOptAliasoptAliastablesampleClauserepeatableClause funcTable rowsfromItem rowsfromList colDefListtableFuncElementListtableFuncElement collateClause aliasClausefuncAliasClause joinedTablejoinTypejoinQual whereClausewhereOrCurrentClause groupClause groupByItem havingClause windowClausewindowDefinitionwindowSpecificationpartitionClause frameClauseframeClauseMode frameExtent frameBoundwindowExclusionCause sortClausesortBy valuesClauseexprListaExprbExprcExpraExprReversableOpverbalExprBinOp subqueryOp bExprIsOpsymbolicExprBinOpqualOp qualAllOpop anyOperatorallOpinExprcaseExpr whenClause caseDefault arrayExpr arrayExprListrow explicitRow implicitRowfuncApplicationfuncApplicationParams allOrDistinct funcArgExprfuncExprfuncExprWindownlesswithinGroupClause filterClause overClausefuncExprCommonSubexpr extractList extractArg overlayListoverlayPlacing positionList substrListsubstrListFromFor substrFrom substrFor trimModifiertrimList aexprConsticonstfconstsconstfuncAexprConstArgList constTypenamenumericbitconstBitconstCharacter character constDatetimetimezoneintervalintervalSecond columnrefident qualifiedName indirection indirectionElname cursorNamecolLabelattrNamefuncNameanyNametypename'typenameArrayDimensionsWithQuestionMarktypenameArrayDimensions arrayBoundssimpleTypename genericTypeattrs typeModifierstypeListsubType indexParams indexElem indexElemDefcollateclass_ascDesc nullsOrderParserruncommaSeparator dotSeparatorinBracketsCont inParensContinParensWithLabelinParensWithClause trueIfPresent quotedString quasiQuotesharedSelectNoParenssimpleSelectNoParenswithSelectNoParensbaseSimpleSelectextensionSimpleSelect materializedpartitionByClausewindowExclusionClausenonTrailingTableReftrailingTableRef optOrdinalityinParensJoinedTabletrailingJoinedTableexprListInParens filteredAExprcustomizedAExprcustomizedBExprcustomizedCExprsymbolicBinOpExpr typecastExpr plusedExpr minusedExpr qualOpExpr arrayExprCont elseClausefuncExprWindowlessnormalFuncApplicationParams#singleVariadicFuncApplicationParams!listVariadicFuncApplicationParamsstarFuncApplicationParamslexicalExprBinOpiconstOrFconstoffsetClauseParams plusOrMinus quotedName filteredColIdfilteredColumnrefcustomizedColumnreffilteredAnyNamecustomizedAnyNamenameListkeywordNameFromSetkeywordNameByPredicate anyKeyword keyphrase suffixRecbaseGHC.Base++ghc-primGHC.PrimseqGHC.Listfilterzip GHC.Stable newStablePtr System.IOprint Data.Tuplefstsnd otherwiseassert GHC.MagiclazyGHC.IO.Exception assertError Debug.TracetraceinlinemapGHC.Exts groupWith$coerceGHC.Real fromIntegral realToFrac Control.MonadguardIsListItem Data.DynamictoDynjoinGHC.EnumBoundedminBoundmaxBoundEnumenumFrom enumFromThenenumFromThenTo enumFromTofromEnumtoEnumsuccpred GHC.ClassesEq==/= GHC.FloatFloatingpiexplogsqrt**logBasesincostanasinacosatansinhcoshtanhasinhacoshatanhlog1pexpm1log1pexplog1mexp Fractional fromRational/recipIntegral toIntegerquotremdivmodquotRemdivModMonad>>=>>return Data.DataDatagfoldlgunfoldtoConstr dataTypeOf dataCast1 dataCast2gmapTgmapQlgmapQrgmapQgmapQigmapMgmapMpgmapMoFunctorfmap<$GHC.NumNum+*-negate fromIntegerabssignumOrd>=minmax><compare<=GHC.ReadRead readsPrecreadListreadPrec readListPrecReal toRational RealFloat floatRadix floatDigits floatRange decodeFloat encodeFloatexponent significand scaleFloatisNaN isInfiniteisDenormalizedisNegativeZeroisIEEEatan2RealFracproperFractiontruncateroundceilingfloorGHC.ShowShow showsPrecshowshowListGHC.ArrIxrangeindexinRange rangeSizeData.Typeable.InternalTypeableControl.Monad.FixMonadFixmfixControl.Monad.Fail MonadFailfail Data.StringIsString fromString Applicativepure<*>*>liftA2<* Data.FoldableFoldablefoldltoListfoldrfoldMapnulllengthfoldl'foldl1sumproductfoldr1maximumminimumelemfoldfoldr'Data.Traversable TraversabletraversemapM sequenceAsequence GHC.GenericsGenericGeneric1 Semigroup<>sconcatstimesMonoidmemptymappendmconcat GHC.TypesBoolFalseTrueCharDoubleFloatIntGHC.IntInt8Int16Int32Int64 integer-gmpGHC.Integer.TypeInteger GHC.MaybeMaybeNothingJustOrderingLTEQGTRatioRational RealWorld StablePtrIOWordGHC.WordWord8Word16Word32Word64GHC.PtrPtrFunPtr Data.EitherEitherLeftRight CoercibleTyConGHC.ForeignPtr ForeignPtrGHC.IO.Handle.TypesHandleGHC.STSTuntangle ioException heapOverflow stackOverflowcannotCompactMutablecannotCompactPinnedcannotCompactFunctionallocationLimitExceededblockedIndefinitelyOnSTMblockedIndefinitelyOnMVarunsupportedOperation Data.Complexphase magnitudepolarcismkPolar conjugateimagPartrealPartComplex:+ Data.Fixed showFixedmod'divMod'div'FixedMkFixed HasResolution resolutionE0UniE1DeciE2CentiE3MilliE6MicroE9NanoE12PicoData.Functor.ContravariantcomparisonEquivalencedefaultEquivalencedefaultComparison>$$<>$<$<phantom Contravariant contramap>$ Predicate getPredicate Comparison getComparison EquivalencegetEquivalencegetOp Data.VoidvacuousabsurdVoidData.Semigroupoption mtimesDefaultdiffcycle1MingetMinMaxgetMaxArgArgMinArgMaxFirstgetFirstLastgetLast WrappedMonoid WrapMonoid unwrapMonoidOption getOptionsortWith tyconModule tyconUQname isNorepType mkNoRepType mkCharConstr mkRealConstrmkIntegralConstr mkCharType mkFloatType mkIntTypemaxConstrIndex constrIndex indexConstr isAlgType readConstr showConstr constrFixity constrFieldsdataTypeConstrsmkConstr mkDataType repConstr constrRep constrType dataTypeRep dataTypeName fromConstrM fromConstrB fromConstrDataTypeConstrDataRepIntRepFloatRepAlgRepCharRepNoRep ConstrRep AlgConstr IntConstr FloatConstr CharConstrConIndexFixityPrefixInfixSystem.TimeouttimeoutControl.ConcurrentthreadWaitWriteSTMthreadWaitReadSTMthreadWaitWritethreadWaitReadrunInUnboundThreadrunInBoundThreadisCurrentThreadBoundforkOSWithUnmaskforkOS forkFinallyrtsSupportsBoundThreadsControl.Concurrent.ChanwriteList2ChangetChanContentsdupChanreadChan writeChannewChanChanControl.Concurrent.QSem signalQSemwaitQSemnewQSemQSemControl.Concurrent.QSemN signalQSemN waitQSemNnewQSemNQSemNData.Bifunctor BifunctorfirstsecondbimapControl.Monad.IO.ClassMonadIOliftIO Data.RatioapproxRational Data.STRef modifySTRef' modifySTRef Data.Unique hashUnique newUniqueUniqueGHC.StableName eqStableNamehashStableNamemakeStableName StableNameSystem.EnvironmentgetEnvironment withProgNamewithArgsunsetEnvsetEnv lookupEnvgetEnv getProgNamegetArgs!System.Environment.ExecutablePathgetExecutablePath System.Exitdie exitSuccess exitFailureexitWith System.Mem performGCperformMajorGCperformMinorGC Text.PrintfhPrintfprintfmfilter<$!>unless replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMforever<=<>=>filterM Data.Version makeVersion parseVersion showVersionVersion versionBranch versionTags traceMarkerIO traceMarker traceEventIO traceEvent traceStack traceShowMtraceM traceShowId traceShowtraceId putTraceMsgtraceIOfoldMapDefault fmapDefault mapAccumR mapAccumLforMforControl.Applicativeoptional WrappedMonad WrapMonad unwrapMonad WrappedArrow WrapArrow unwrapArrowZipList getZipList Control.ArrowleftApp^<<<<^>>^^>>returnAArrowarr***&&&Kleisli runKleisli ArrowZero zeroArrow ArrowPlus<+> ArrowChoice|||+++leftright ArrowApplyapp ArrowMonad ArrowLooploopData.Functor.IdentityIdentity runIdentity(openBinaryTempFileWithDefaultPermissions"openTempFileWithDefaultPermissionsopenBinaryTempFile openTempFilefixIOwithBinaryFilewithFilehPrinthReadylocaleEncodingreadIOreadLn appendFile writeFilereadFileinteract getContentsgetLinegetCharputStrLnputStrputChar GHC.IO.HandlehShowhSetNewlineModehSetBinaryModehIsTerminalDevicehGetEchohSetEcho hIsSeekable hGetBuffering hIsWritable hIsReadable hIsClosedhIsOpenhTellhSeekhSetPosnhGetPosn hGetEncoding hSetEncoding hSetBuffering hLookAheadisEOFhIsEOF hSetFileSize hFileSizehClose HandlePosnGHC.IO.Handle.FDopenBinaryFileopenFilestderrstdinGHC.IO.Handle.TexthGetBufNonBlocking hGetBufSomehGetBufhPutBufNonBlockinghPutBuf hPutStrLnhPutStrhPutChar hGetContentshGetLinehGetChar hWaitForInput GHC.Conc.IO registerDelay threadDelay closeFdWithioManagerCapabilitiesChangedensureIOManagerIsRunningGHC.Conc.Signal runHandlers setHandlerSignal HandlerFunControl.Concurrent.MVar mkWeakMVaraddMVarFinalizermodifyMVarMaskedmodifyMVarMasked_ modifyMVar modifyMVar_withMVarMaskedwithMVarswapMVarGHC.IO.EncodingmkTextEncodingchar8utf32beutf32leutf32utf16beutf16leutf16utf8_bomutf8latin1System.IO.Unsafe unsafeFixIOControl.ExceptionallowInterruptcatchesHandlerControl.Monad.ST.ImpfixSTSystem.IO.Error catchIOErrorannotateIOError modifyIOErrorioeSetFileName ioeSetHandleioeSetLocationioeSetErrorStringioeSetErrorTypeioeGetFileName ioeGetHandleioeGetLocationioeGetErrorStringioeGetErrorTypeisUserErrorTypeisPermissionErrorTypeisIllegalOperationErrorTypeisEOFErrorTypeisFullErrorTypeisAlreadyInUseErrorTypeisDoesNotExistErrorTypeisAlreadyExistsErrorType userErrorTypepermissionErrorTypeillegalOperationErrorType eofErrorType fullErrorTypealreadyInUseErrorTypedoesNotExistErrorTypealreadyExistsErrorType isUserErrorisPermissionErrorisIllegalOperation isEOFError isFullErrorisAlreadyInUseErrorisDoesNotExistErrorisAlreadyExistsError mkIOError tryIOErrorControl.Exception.BasebracketOnErrorbracket_finallybracket onExceptiontryJusttry mapException handleJusthandle catchJustPatternMatchFail RecSelError RecConError RecUpdError NoMethodError TypeErrorNonTerminationNestedAtomically GHC.Conc.SyncgetUncaughtExceptionHandlersetUncaughtExceptionHandler reportErrorreportStackOverflow writeTVarreadTVar readTVarIO newTVarIOnewTVarcatchSTMthrowSTMretry atomically unsafeIOToSTMnewStablePtrPrimMVarmkWeakThreadIdthreadCapability threadStatus runSparksparpseq labelThreadyield myThreadIdthrowTo killThread childHandler numSparksgetNumProcessorssetNumCapabilitiesgetNumCapabilitiesnumCapabilitiesforkOnWithUnmaskforkOnforkIOWithUnmaskforkIOdisableAllocationLimitenableAllocationLimitgetAllocationCountersetAllocationCounterreportHeapOverflowThreadId BlockReason BlockedOnMVarBlockedOnBlackHoleBlockedOnException BlockedOnSTMBlockedOnForeignCallBlockedOnOther ThreadStatus ThreadRunningThreadFinished ThreadBlocked ThreadDiedPrimMVarSTMTVar dynTypeRepdynAppdynApply fromDynamicfromDynDynamicioErrorasyncExceptionFromExceptionasyncExceptionToExceptionBlockedIndefinitelyOnMVarBlockedIndefinitelyOnSTMDeadlockAllocationLimitExceededCompactionFailedAssertionFailedSomeAsyncExceptionAsyncException StackOverflow HeapOverflow ThreadKilled UserInterruptArrayExceptionIndexOutOfBoundsUndefinedElementFixIOExceptionExitCode ExitSuccess ExitFailure IOErrorTypeEOF AlreadyExists NoSuchThing ResourceBusyResourceExhaustedIllegalOperationPermissionDenied UserErrorUnsatisfiedConstraints SystemError ProtocolError OtherErrorInvalidArgumentInappropriateType HardwareFaultUnsupportedOperation TimeExpiredResourceVanished InterruptedhFlushstdoutnoNewlineTranslationnativeNewlineModeuniversalNewlineMode nativeNewline BufferMode NoBuffering LineBufferingBlockBufferingNewlineLFCRLF NewlineModeinputNLoutputNL GHC.IO.DeviceSeekMode AbsoluteSeek RelativeSeek SeekFromEnd Data.IORefatomicWriteIORefatomicModifyIORef'atomicModifyIORef modifyIORef' modifyIORef mkWeakIORefGHC.IO.Encoding.Types TextEncodingForeign.ForeignPtr.ImpmallocForeignPtrArray0mallocForeignPtrArraynewForeignPtrEnvwithForeignPtr newForeignPtrfinalizeForeignPtrplusForeignPtrcastForeignPtrtouchForeignPtrnewForeignPtr_addForeignPtrFinalizerEnvaddForeignPtrFinalizermallocForeignPtrBytesmallocForeignPtr FinalizerPtrFinalizerEnvPtr GHC.IORef writeIORef readIORefnewIORefIORefGHC.IOevaluateuninterruptibleMaskuninterruptibleMask_maskmask_getMaskingState interruptiblethrowIOcatchstToIOFilePath MaskingStateUnmaskedMaskedInterruptibleMaskedUninterruptible userError IOExceptionIOError ioe_handleioe_type ioe_locationioe_description ioe_errno ioe_filename GHC.Exceptionthrow ErrorCallErrorCallWithLocationGHC.Exception.Type Exception toException fromExceptiondisplayExceptionArithExceptionOverflow UnderflowLossOfPrecision DivideByZeroDenormalRatioZeroDenominator Data.TypeabletypeOf7typeOf6typeOf5typeOf4typeOf3typeOf2typeOf1 rnfTypeReptypeRepFingerprint typeRepTyCon typeRepArgs splitTyConAppmkFunTy funResultTygcast2gcast1gcasteqTcast showsTypeReptypeReptypeOfTypeReprnfTyContyConFingerprint tyConName tyConModule tyConPackageData.Functor.ConstConstgetConstfindnotElem minimumBy maximumByallanyorand concatMapconcatmsumasum sequence_ sequenceA_forM_mapM_for_ traverse_foldlMfoldrM Data.MonoidApgetApData.Semigroup.Internal stimesMonoidstimesIdempotentDualgetDualEndoappEndoAllgetAllAnygetAnySumgetSumProduct getProductAltgetAlt Unsafe.Coerce unsafeCoerce Data.OldListunwordswordsunlineslinesunfoldrsort permutations subsequencestailsinitsgroupBygroupdeleteFirstsByunzip7unzip6unzip5unzip4zipWith7zipWith6zipWith5zipWith4zip7zip6zip5zip4genericReplicate genericIndexgenericSplitAt genericDrop genericTake genericLengthinsertByinsert partition transpose intercalate intersperse intersectBy intersectunionByunion\\deleteBydeletenubBynub isInfixOf isSuffixOf isPrefixOf findIndices findIndex elemIndices elemIndex stripPrefix dropWhileEnd Data.Char isSeparatorisNumberisMarkisLetter digitToInt Text.Readread readMaybe readEitherreads fromRightfromLeftisRightisLeftpartitionEithersrightsleftseitherData.Ord comparingDown Data.Proxy asProxyTypeOfProxyKProxyControl.Category>>><<<Categoryid.Data.Type.Equality:~:Refl:~~:HRefl Foreign.Ptr intPtrToPtr ptrToIntPtr wordPtrToPtr ptrToWordPtrfreeHaskellFunPtrWordPtrIntPtr GHC.IO.IOModeIOModeReadMode WriteMode AppendMode ReadWriteModeForeign.StorableStorable peekElemOff pokeElemOff peekByteOff pokeByteOffpeekpokecastPtrToStablePtrcastStablePtrToPtrdeRefStablePtr freeStablePtrcastPtrToFunPtrcastFunPtrToPtr castFunPtr nullFunPtrminusPtralignPtrplusPtrcastPtrnullPtrshowOctshowHex showIntAtBase showHFloat showGFloatAlt showFFloatAlt showGFloat showFFloat showEFloatshowInt readSigned readFloatreadHexreadDecreadOctreadInt lexDigits readLitChar lexLitCharlex readParenText.ParserCombinators.ReadPrec readS_to_Prec readPrec_to_S readP_to_Prec readPrec_to_PReadPrecText.ParserCombinators.ReadP readS_to_P readP_to_SReadSReadPfromRat floatToDigits showFloat byteSwap64 byteSwap32 byteSwap16 GHC.UnicodetoTitletoUppertoLowerisLowerisUpperisPrint isControl isAlphaNumisAlphaisSymbol isPunctuation isHexDigit isOctDigitisDigitisSpace isAsciiUpper isAsciiLowerisLatin1isAsciigeneralCategoryGeneralCategoryFormatControlUppercaseLetterLowercaseLetterTitlecaseLetterModifierLetter OtherLetterNonSpacingMarkSpacingCombiningMark EnclosingMark DecimalNumber LetterNumber OtherNumberConnectorPunctuationDashPunctuationOpenPunctuationClosePunctuation InitialQuote FinalQuoteOtherPunctuation MathSymbolCurrencySymbolModifierSymbol OtherSymbolSpace LineSeparatorParagraphSeparator Surrogate PrivateUse NotAssigned GHC.STRef writeSTRef readSTRefnewSTRefSTRefrunST Data.BitstoIntegralSizedpopCountDefaulttestBitDefault bitDefaultBits.&..|.xor complementshiftrotatezeroBitssetBitclearBit complementBittestBit bitSizeMaybebitSizeisSignedshiftL unsafeShiftLshiftR unsafeShiftRrotateLrotateRpopCount FiniteBits finiteBitSizecountLeadingZeroscountTrailingZeros Data.Boolbool Data.Function&onfix Data.Functorvoid$><&><$>lcmgcd^^^oddeven showSigned denominator numerator%GHC.Charchr intToDigit showLitChar showParen showStringshowCharshowsShowSunzip3unzipzipWith3zipWithzip3!!lookupreversebreakspansplitAtdroptake dropWhile takeWhilecycle replicaterepeatiterate'iteratescanr1scanrscanl'scanl1scanlfoldl1'initlasttailhead Data.MaybemapMaybe catMaybes listToMaybe maybeToList fromMaybefromJust isNothingisJustmaybeswapuncurrycurry GHC.IO.UnsafeunsafeInterleaveIOunsafeDupablePerformIOunsafePerformIOGHC.MVar isEmptyMVar tryReadMVar tryPutMVar tryTakeMVarputMVarreadMVartakeMVarnewMVar newEmptyMVarMVarsubtractasTypeOfuntil$!flipconstordapliftM5liftM4liftM3liftM2liftMwhen=<<liftA3liftA<**> Alternativeempty<|>somemany MonadPlusmzeromplusNonEmpty:|StringGHC.Err undefinederrorWithoutStackTraceerrorstimesIdempotentMonoid SomeException&&||notbytestring-0.10.8.2Data.ByteString.Internal ByteString text-1.2.3.1Data.Text.InternalText/case-insensitive-1.2.1.0-9KdH7QUcC7J7HdJvcrOu45Data.CaseInsensitive.InternalCIFoldCasecontainers-0.6.0.1Data.IntMap.InternalIntMapData.IntSet.InternalIntSetData.Map.InternalMapData.Sequence.InternalSeqData.Set.InternalSet*contravariant-1.5.2-1ZQM8SswnWXJmdlHRX0Vig$Data.Functor.Contravariant.DivisiblechosenlostliftD conquereddivided Divisibledivideconquer Decidablechooselose3unordered-containers-0.2.10.0-b9YJCQLkMeLUf311RZkQDData.HashMap.BaseHashMap'hashable-1.3.0.0-1RsrIcitxVDKffGN1TuMlmData.Hashable.ClassHashable"foldl-1.4.6-Dpq19r6dZ8SJWgcPLlWTg1 Control.FoldlFold&selective-0.4.1-DuDm58pOsFhJsrz4GwRP4hControl.Selective ComposeEither ValidationFailureSuccessUndergetUnderOvergetOverSelectM getSelectMSelectA getSelectACases Selectiveselect<*?branchselectAapSselectMifS casesEnumcasesmatchSmatchMbindSwhenS fromMaybeSorElseandAlso swapEitherwhileS untilRight<||><&&>anySallSfoldSData.HashSet.BaseHashSet'uuid-types-1.0.3-Ch4DBmGyJLS7uw4hSXblWiData.UUID.Types.InternalUUID showAsTextintersperseFoldMapunsnoc consAndUnsnoceof'megaparsec-8.0.0-BFw8gNuiOzWGglmtIkYt5XText.Megaparsec.Class takeWhileP takeWhile1Psatisfydecimalfloatsep1sepEnd1 notFollowedByhexDigitprohibitionLiftingOponeOfinSetfirstIdentifierCharnotFirstIdentifierCharsymbolicBinOpCharopCharprohibitedOpCharprohibitionLiftingOpChar