!z"v      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu'Helpers to handle source code locations experimentalNone"$,124567;=>?EHMSVXdk vegison-pattern-srcw that scans over a source code.egison-pattern-src.Location, a range of positions in source code.egison-pattern-srcPosition in source code.xegison-pattern-srcMake  from y vz{xTokens in expressions experimentalNone"$,124567;=>?EHMSVXdk egison-pattern-src<Provide a set of tokens needed to parse pattern expressions.     #Constraint for the source of parser experimentalNone"$,124567;=>?EHMSVXdkDegison-pattern-srcType of tokens in the source.egison-pattern-srcType of token in the source.egison-pattern-src$Constraint for the source of parser.  Parse errors experimentalNone"$,124567;=>?EHMSVXdk|egison-pattern-src0Internal error type to use as a custom error in    monad.egison-pattern-srcType synonym for an error list.egison-pattern-src Parse error. egison-pattern-srcToken representation in .}egison-pattern-srcConvert ~ to .| !"#} Pretty-printing errors experimentalNone"$,124567;=>?EHMSVXdk$egison-pattern-srcA pretty printer error.$%2Abstract syntax tree for Egison pattern expression experimentalNone"$,124567;=>?EHMSVXdk* &egison-pattern-srcEgison pattern expressions. nS is a type for name references in patterns, such as them in pattern constructors. vN is a type for name bindings in patterns, such as them in pattern variables. eG is a type for expressions in patterns, such as them in value patterns.'egison-pattern-src(Wildcard pattern. Match with everything.(egison-pattern-src8Pattern variable. The matched term is bound to the name.)egison-pattern-src&Value pattern. Match with equal terms.*egison-pattern-srcEPredicate pattern. Match with terms that satisfy the given predicate.+egison-pattern-src.And pattern. Match when both patterns matches.,egison-pattern-src5Or pattern. Match when one of given patterns matches.-egison-pattern-src9Not pattern. Match when the given pattern does not match..egison-pattern-srcUser-defined infix pattern./egison-pattern-srcUser-defined normal pattern. &-.*/'()+, &-.*/'()+,*Base functor for Egison pattern expression experimentalNone"$,124567;=>?EHMSVXdk,5egison-pattern-srcBase functor of &. 56789:;<=> 56789:;<=>4Useful combinators to manipulate Egison pattern ASTs experimentalNone"$,124567;=>?EHMSVXdk4Degison-pattern-srcUnwrap annotations from AST.Eegison-pattern-srcfold an v expr.0Note that this is just a type specialization of .Fegison-pattern-src Map over n in  Expr n v e.Gegison-pattern-src Map over v in  Expr n v e.Hegison-pattern-src Map over e in  Expr n v e.Iegison-pattern-src*List bound pattern variables in a pattern.DEFGHIDEFGHIIManipulating Egison patterns: abstract syntax, parser, and pretty-printer experimentalNone"$,124567;=>?EHMSVXdk7&-.*/'()+,56789:;<=>DEFGHI Associativity of infix operators experimentalNone"$,124567;=>?EHMSVXdk:Jegison-pattern-src!Associativity of infix operators.JKLMA precedence of infix operators experimentalNone"$,124567;=>?EHMSVXdk=Negison-pattern-src A precedence of infix operators.egison-pattern-src$Obtain an integer representation of N.NOFixity of infix operators experimentalNone"$,124567;=>?EHMSVXdk?Pegison-pattern-srcFixity of infix operators. JKLMNOPQTRS PQTRSJKLMNOPrinter configuration experimentalNone"$,124567;=>?EHMSVXdkEUegison-pattern-srcPrinter configuration.\egison-pattern-srcRendering style configuration.`egison-pattern-srcFixity of infix operators.degison-pattern-srcd a. is a type for externally provided printer of a.PQTRSUVWXYZ[\]^_`abcdPrimitive printers experimentalNone"$,124567;=>?EHMSVXdkFInfix operator datatypes experimentalNone"$,124567;=>?EHMSVXdkHPretty-printing context experimentalNone"$,124567;=>?EHMSVXdkJ3 Printer monad experimentalNone"$,124567;=>?EHMSVXdkKExternally privided printers experimentalNone"$%,124567;=>?EHMSVXdkPegison-pattern-src6Check whether the string is surrounded by parentheses.#surroundedByParens "(Hello, World)"True!surroundedByParens "Hello, World"False#surroundedByParens "(Hello)(World)"FalseParser configuration experimentalNone"$,124567;=>?EHMSVXdkTeegison-pattern-srcParser configuration.megison-pattern-srcFixity of infix operators.qegison-pattern-srcq s a- is a type for externally provided parser of a. efghijklmnopq Parser monad experimentalNone"$,124567;=>?EHMSVXdkWegison-pattern-src Parser monad.egison-pattern-srcRun " monad and produce a parse result."Parser monad and primitive parsers experimentalNone"$,124567;=>?EHMSVXdk_egison-pattern-srcSkip one or more spaces.egison-pattern-srcParse a lexical chunk.egison-pattern-srcApply an external parser.egison-pattern-srcMake a lexical token. lexeme p first applies parser p then  parser.egison-pattern-src Parser for n in  Parse n v e s monad.egison-pattern-src Parser for v in  Parse n v e s monad.egison-pattern-src Parser for e in  Parse n v e s monad.Dvz{ !"#efghijklmnopq*Useful combinators to build lexeme parsers experimentalNone"$,124567;=>?EHMSVXdkeegison-pattern-srcParser for a single token.egison-pattern-srcParser for a chunk of tokens.egison-pattern-srcWrap a parser with parentheses.)Helpers to build a parser for expressions experimentalNone"$,124567;=>?EHMSVXdkoregison-pattern-src with locations annotated.egison-pattern-src)A list of operators with same precedence.egison-pattern-srcInitial  with no operator.egison-pattern-srcAdd an infix operator to .egison-pattern-srcAdd a prefix operator to .egison-pattern-src:Build an operator table from primitive operator table and eA context. Note that the behavior is undefined when the supplied eK contains some fixities that conflict with ones provided via the parameter.egison-pattern-srcLBuild an v expression parser with location information, from an atom parser.JKLMNOPQTRSrFixity of primitive operators experimentalNone"$,124567;=>?EHMSVXdkq"Pretty printer for Egison patterns experimentalNone"$,124567;=>?EHMSVXdktKsegison-pattern-src Pretty print &.$%JKLMNOPQTRSUVWXYZ[\]^_`abcdss$%JKLMNOPQTRSUVWXYZ[\]^_`abcdParser for Egison patterns experimentalNone"$,124567;=>?EHMSVXdkx&tegison-pattern-srcParse & with locations annotated.uegison-pattern-srcParse &.?    !"#JKLMNOPQTRSefghijklmnopqrtu?tu    !"#JKLMNOPQTRSefghijklmnopqr !!"#$%&'()*+,-./ 0 1 2 3 4 5 6 7 8 9 : ; < 0 = > 4 ?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgghhijkllmnopqrrstuuvwxyyz{|}~     1egison-pattern-src-0.1.0.0-EKV87hBGG8O2A8pHnh2PbKLanguage.Egison.Parser.PatternLanguage.Egison.Pretty.Pattern#Language.Egison.Syntax.Pattern.Expr#Language.Egison.Syntax.Pattern.Base)Language.Egison.Syntax.Pattern.Combinator%Language.Egison.Syntax.Pattern.Fixity,Language.Egison.Parser.Pattern.Prim.Location$Language.Egison.Parser.Pattern.Token*Language.Egison.Parser.Pattern.Prim.Source)Language.Egison.Parser.Pattern.Prim.ErrorText.MegaparsecParsec$Language.Egison.Pretty.Pattern.ErrorLanguage.Egison.Syntax.Pattern3Language.Egison.Syntax.Pattern.Fixity.Associativity0Language.Egison.Syntax.Pattern.Fixity.Precedence(Language.Egison.Pretty.Pattern.PrintMode#Language.Egison.Pretty.Pattern.Prim'Language.Egison.Pretty.Pattern.Operator&Language.Egison.Pretty.Pattern.Context$Language.Egison.Pretty.Pattern.Print'Language.Egison.Pretty.Pattern.External-Language.Egison.Parser.Pattern.Prim.ParseMode)Language.Egison.Parser.Pattern.Prim.Parse#Language.Egison.Parser.Pattern.Prim)Language.Egison.Parser.Pattern.Combinator#Language.Egison.Parser.Pattern.ExprExpr/Language.Egison.Syntax.Pattern.Fixity.PrimitiveLocation$sel:begin:Location$sel:end:LocationPosition$sel:line:Position$sel:column:PositionIsTokenisSpacenewline parenLeft parenRight underscorehashquestion exclamationandverticaldollarTokensTokenSourceErrorsErrorUnexpectedToken ExternalError$sel:position:UnexpectedToken$sel:expected:UnexpectedToken$sel:found:UnexpectedToken$sel:input:UnexpectedToken$sel:message:UnexpectedToken ErrorItemLabel EndOfInputUnknownInfixOperatorWildcardVariableValue PredicateAndOrNotInfixPattern$fEqExpr $fOrdExpr $fShowExpr $fDataExpr $fGenericExprExprF WildcardF VariableFValueF PredicateFAndFOrFNotFInfixFPatternF$fCorecursiveExpr$fRecursiveExpr$fFunctorExprF$fFoldableExprF$fTraversableExprF unAnnotatefoldExprmapName mapVarName mapValueExpr variables Associativity AssocLeft AssocRight AssocNone PrecedenceFixity$sel:associativity:Fixity$sel:precedence:Fixity$sel:symbol:Fixity PrintMode$sel:fixities:PrintMode$sel:varNamePrinter:PrintMode$sel:namePrinter:PrintMode$sel:valueExprPrinter:PrintMode$sel:pageMode:PrintModePageMode$sel:lineLength:PageMode$sel:ribbonsPerLine:PageMode PrintFixity$sel:fixity:PrintFixity$sel:printed:PrintFixity ExtPrinter ParseMode$sel:fixities:ParseMode$sel:blockComment:ParseMode$sel:lineComment:ParseMode$sel:varNameParser:ParseMode$sel:nameParser:ParseMode$sel:valueExprParser:ParseMode ParseFixity$sel:fixity:ParseFixity$sel:parser:ParseFixity ExtParserExprL prettyExpr parseExprL parseExprLocatebaseGHC.BaseMonad fromSourcePos&megaparsec-8.0.0-9g7AKmV0pGtLHgiBXCxWUText.Megaparsec.Pos SourcePos getPosition getLocation CustomErrorfromParseErrorBundleText.Megaparsec.ErrorParseErrorBundleExtParserError$sel:message:ExtParserError$sel:input:ExtParserError.recursion-schemes-5.1.3-2SzAkRbzQpT9WnEBUmFpKtData.Functor.FoldablecatatoInt*prettyprinter-1.6.1-KjG1sEzf1n21EgCkj9uNVa'Data.Text.Prettyprint.Doc.Symbols.Asciiparens"Data.Text.Prettyprint.Doc.Internalhsep<+>Doctext renderDocOperatorInfixOpPrefixOp$sel:symbol:InfixOp$sel:associativity:InfixOp$sel:precedence:InfixOpSideLeftSide RightSideContextWorldUnderConstructorArgumentPrintaskMode askContext withContextrunPrint operatorOfsurroundedByParensvarNamename valueExprParserunParsespace takeChunk extParserlexemechunksingleText.Megaparsec.Class MonadParsectryeof lookAheadlabel parseErrorhidden notFollowedBy withRecovery observingtokentokens takeWhileP takeWhile1PtakePgetParserStateupdateParserStatesymbolTable initTableaddInfix addPrefixbuildOperatorTable exprParser$sel:prefix:Table$sel:infixRight:Table$sel:infixLeft:Table$sel:infixNone:Table andPrecedence orPrecedenceandAssociativityorAssociativity notPrecedence