!      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'Helpers to handle source code locations experimentalNone"$,1245678;=>?@AEHMSVXdk egison-pattern-src that scans over a source code.egison-pattern-src.Location, a range of positions in source code.egison-pattern-srcPosition in source code.egison-pattern-srcMake  from  Tokens in expressions experimentalNone"$,1245678;=>?@AEHMSVXdkegison-pattern-src<Provide a set of tokens needed to parse pattern expressions.     #Constraint for the source of parser experimentalNone"$,1245678;=>?@AEHMSVXdkegison-pattern-srccConstraint for the source of parser. TODO: Hide these methods in haddock (see haskell/haddock#330)egison-pattern-src#Check if the stream is null or not.egison-pattern-src.Reify the input stream into a chunk of tokens.egison-pattern-src$Add a token to the front of a chunk.egison-pattern-src#Add a token to the back of a chunk.egison-pattern-srcType of tokens in the source.egison-pattern-srcType of token in the source.  Parse errors experimentalNone"$,1245678;=>?@AEHMSVXdkegison-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 .#! "$%&'( *Type class providing functions for parsing experimentalNone"$,1245678;=>?@AEHMSVXdk&m)egison-pattern-src+Type class providing functions for parsing.*egison-pattern-srcParse a source stream.+egison-pattern-src0Parse a source stream with location annotations.,egison-pattern-srcParse a source stream non-greedily. That is, this parser will only consume the input until a is fully parsed, and return the rest of the input.-egison-pattern-src=Parse a source stream non-greedily with location annotations.)*+,-Pretty-printing errors experimentalNone"$,1245678;=>?@AEHMSVXdk(.egison-pattern-srcA pretty printer error../2Abstract syntax tree for Egison pattern expression experimentalNone"$,1245678;=>?@AEHMSVXdk< 0egison-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.1egison-pattern-src(Wildcard pattern. Match with everything.2egison-pattern-src8Pattern variable. The matched term is bound to the name.3egison-pattern-src&Value pattern. Match with equal terms.4egison-pattern-srcEPredicate pattern. Match with terms that satisfy the given predicate.5egison-pattern-src.And pattern. Match when both patterns matches.6egison-pattern-src5Or pattern. Match when one of given patterns matches.7egison-pattern-src9Not pattern. Match when the given pattern does not match.8egison-pattern-srcOTuple pattern. Match with tuples whose elements match with respective patterns.9egison-pattern-srcYCollection pattern. Match with collections whose elements match with respective patterns.:egison-pattern-srcUser-defined infix pattern.;egison-pattern-srcUser-defined normal pattern. 07:4;1235689 07:4;1235689*Base functor for Egison pattern expression experimentalNone"$,1245678;=>?@AEHMSVXdk?Aegison-pattern-srcBase functor of 0. ABCDEFGHIJKL ABCDEFGHIJKL4Useful combinators to manipulate Egison pattern ASTs experimentalNone"$,1245678;=>?@AEHMSVXdkFRegison-pattern-srcUnwrap annotations from AST.Segison-pattern-srcfold an v expr.0Note that this is just a type specialization of .Tegison-pattern-src Map over n in  Expr n v e.Uegison-pattern-src Map over v in  Expr n v e.Vegison-pattern-src Map over e in  Expr n v e.Wegison-pattern-src*List bound pattern variables in a pattern.RSTUVWRSTUVWIManipulating Egison patterns: abstract syntax, parser, and pretty-printer experimentalNone"$,1245678;=>?@AEHMSVXdkI07:4;1235689ABCDEFGHIJKLRSTUVW Associativity of infix operators experimentalNone"$,1245678;=>?@AEHMSVXdkLXegison-pattern-src!Associativity of infix operators.XYZ[A precedence of infix operators experimentalNone"$,1245678;=>?@AEHMSVXdkP;\egison-pattern-src A precedence of infix operators.egison-pattern-src$Obtain an integer representation of \.\]Fixity of infix operators experimentalNone"$,1245678;=>?@AEHMSVXdkR^egison-pattern-srcFixity of infix operators. XYZ[\]^_b`a ^_b`aXYZ[\]Printer configuration experimentalNone"$,1245678;=>?@AEHMSVXdkWcegison-pattern-srcPrinter configuration.jegison-pattern-srcRendering style configuration.negison-pattern-srcFixity of infix operators.regison-pattern-srcr a. is a type for externally provided printer of a.^_b`acdefghijklmnopqrPrimitive printers experimentalNone"$,1245678;=>?@AEHMSVXdkYInfix operator datatypes experimentalNone"$,1245678;=>?@AEHMSVXdk[Pretty-printing context experimentalNone"$,1245678;=>?@AEHMSVXdk]k Printer monad experimentalNone"$,1245678;=>?@AEHMSVXdk_Externally privided printers experimentalNone"$%,1245678;=>?@AEHMSVXdkdQegison-pattern-src4Check whether the string is surrounded by something.let parens = ('(', ')')$surroundedBy parens "(Hello, World)"True"surroundedBy parens "Hello, World"False$surroundedBy parens "(Hello)(World)"FalseParser configuration experimentalNone"$,1245678;=>?@AEHMSVXdkhsegison-pattern-srcParser configuration.|egison-pattern-srcFixity of infix operators.egison-pattern-src s a- is a type for externally provided parser of a.stvuwxyz{|}~ Parser monad experimentalNone"$,1245678;=>?@AEHMSVXdkkegison-pattern-src Parser monad.egison-pattern-srcRun " monad and produce a parse result."Parser monad and primitive parsers experimentalNone"$,1245678;=>?@AEHMSVXdksegison-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.G#! "$%&'(stvuwxyz{|}~*Useful combinators to build lexeme parsers experimentalNone"$,1245678;=>?@AEHMSVXdkyJegison-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"$,1245678;=>?@AEHMSVXdk@egison-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 sA context. Note that the behavior is undefined when the supplied sK contains some fixities that conflict with ones provided via the parameter.egison-pattern-srcJBuild an expression parser with location information, from an atom parser.egison-pattern-srclBuild an atom parser with location information, from an atom parser. (i.e. just adds a location information)XYZ[\]^_b`aFixity of primitive operators experimentalNone"$,1245678;=>?@AEHMSVXdkZ"Pretty printer for Egison patterns experimentalNone"$,1245678;=>?@AEHMSVXdkegison-pattern-src Pretty print 0../XYZ[\]^_b`acdefghijklmnopqr./XYZ[\]^_b`acdefghijklmnopqrParser for Egison patterns experimentalNone"$,1245678;=>?@AEHMSVXdkegison-pattern-srcParse 0 with locations annotated.egison-pattern-srcParse 0.J    #! "$%&'()*+,-XYZ[\]^_b`astvuwxyz{|}~J    #! "$%&'()*+,-XYZ[\]^_b`astvuwxyz{|}~ !""#$%&'()*+,-./0123 4 5 6 7 8 9 : ; < = > ? @ A B 5 C D E F G H I8JKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvvwwxyz{{|}~     1egison-pattern-src-0.2.1.0-K6ZEPfT3gVPEdjnKlVsNjKLanguage.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.Parser.Pattern.Parsable$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 exclamationandverticaldollar bracketLeft bracketRightcommaSourceTokensTokenErrorsErrorUnexpectedToken ExternalErrorUnexpectedEndOfFile$sel:position:UnexpectedToken$sel:expected:UnexpectedToken$sel:found:UnexpectedToken$sel:input:UnexpectedToken$sel:message:UnexpectedToken$sel:rest:UnexpectedToken ErrorItemLabel EndOfInputParsableparseparseWithLocationparseNonGreedyparseNonGreedyWithLocationUnknownInfixOperatorWildcardVariableValue PredicateAndOrNotTuple CollectionInfixPattern$fEqExpr $fOrdExpr $fShowExpr $fDataExpr $fGenericExprExprF WildcardF VariableFValueF PredicateFAndFOrFNotFTupleF CollectionFInfixFPatternF$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:filename: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 parseExpr$fParsableExprsParseModeLocatebaseGHC.BaseMonad fromSourcePos'megaparsec-8.0.0-BFw8gNuiOzWGglmtIkYt5XText.Megaparsec.Pos SourcePos getPosition getLocationeoftokens consTokens snocTokens 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<+>tupledlistDoctext renderDocOperatorInfixOpPrefixOp$sel:symbol:InfixOp$sel:associativity:InfixOp$sel:precedence:InfixOpSideLeftSide RightSideContextWorldAtomUnderPrintaskMode askContext withContextrunPrint operatorOf surroundedByvarNamename valueExprParserunParsespace takeChunk extParserlexemechunksingleText.Megaparsec.Class MonadParsectry lookAheadlabel parseErrorhidden notFollowedBy withRecovery observingtoken takeWhileP takeWhile1PtakePgetParserStateupdateParserStatesymbolTable initTableaddInfix addPrefixbuildOperatorTable exprParser atomParser$sel:prefix:Table$sel:infixRight:Table$sel:infixLeft:Table$sel:infixNone:Table andPrecedence orPrecedenceandAssociativityorAssociativity