úÎ ˆk      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j Safe4V (Matches brackets and nests token streams     Safe357>   Safe3457&!Recursively checks to see if all EText% constructors only occur inside the first EAbs constructor via EConc - if some are in EApp-, for instance, then you can't successfully render the expression. !"#$%&'()*+  !"#$%&'(%$ !"#&+*)'(  !"#$%&'()*+None,,,,Safe4V4,Parser for expressions. Note - cannot parse EConc or ETextE constructors - they are implicit, and not considered in evaluation. -./012345 -./012345 -./012345-./012345None4NV6789:6789:7689:6789:Safe>Pturn head of template's arity into list - still need to render inner expressions@=Note - only use post-beta reduction: this function is partial;<=>?@;<=>?@<;=>?@;<=>?@Safe357ABCDEFGHIJKLMNOPQRST ABCDEFGHIJKLMHDEFGTBCAIJSRQPOKLNMABCDEFGHIJKLMNOPQRST Safe3457\3Binds free type variables as universally quantified_3Replaces bound type variables with free, fresh ones`Most general unifieraMakes a substitution [x -> t]bType inference functionUVWXYZ[\]^_`abcdefUVWXYZ[\]^_`abcdYZ[fe\UVWX]^_`abcdUVWXYZ[\]^_`abcdef Safe4ghijghijghijghij None7 !"#$%&'(,ABCDEFGHIJKLMUVWXYZ[\]^_`abcdghijk    !"#$%&'()*+,-./01234567889:;<=>?@ABCD@AEFGHIJJKLMNOPQRSTUVWXYZ[ \ \ ] ^ _ _ ` a b c d e f g h i j k l m n opltext_FQESL4zjvl66c3b0w7HnDRLText.Parser.LexerLText.Internal.ClassesLText.Internal.ExprLText.Internal.Expr.THLText.Parser.ExprLText.Parser.DocumentLText.RendererLText.Internal.TypesLText.Internal.InferenceLText.Internal.EvaluationLText.Internal TokenStatebetween ExprTokensTLambTArrowTIdentTGroupTLParenTRPareninitTokenStatetokenizerunGroupgrouplexer$fShowExprTokens SubstitutableapplyBindablefvSetLikeemptyunion intersection difference$fSubstitutablesubstnamedomainf$fBindablevarsnamef $fSetLikeSet $fSetLikeMapExprEVarEAppEAbsELetETextEConcExprVarSpanlitsAtTopLevelprExp prParenExp $fShowExpr$fSubstitutableMap[]ExprExpr$fBindableSet[]ExprexprToHs ParseState inLambdaDec isFreshScope exprSoFarinitParseStaterunParse parseExprmakeExpr HeaderSchemaVar getHeader parseDelim parseDocument showHeaderrenderHeaderSchemarenderhasAritySubstPrenexTypeTVarTFunTTextTypeVar nullSubst composeSubstprType prParenTypeprPrenex $fShowPrenex $fShowType$fSubstitutableMap[]TypePrenex$fBindableSet[]Prenex$fSubstitutableMap[]TypeType$fBindableSet[]Type $fNFDataTypeTIStatetiSupplytiSubstContextremove generalizerunTInewTyVar instantiatemguvarBindti typeInferencetest$fSubstitutableMap[]TypeContext$fBindableSet[]ContextrunEv freshExprVarreducealpha