úÎ ¬m      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi j k l 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. !"#$%&'()*+,-. !"#$%&'()*+(' !"#$%&).-,*+ !"#$%&'()*+,-.Safe4V6,Parser for expressions. Note - cannot parse EConc or ETextE constructors - they are implicit, and not considered in evaluation. /012345678 /012345678 /012345678/012345678Safe4NV9:;<=9:;<=:9;<=9:;<=SafeAPturn head of template's arity into list - still need to render inner expressionsC=Note - only use post-beta reduction: this function is partial>?@ABC>?@ABC?>@ABC>?@ABCSafe357DEFGHIJKLMNOPQRSTUV DEFGHIJKLMNOPKGHIJEFDLMVUTSRNOQPDEFGHIJKLMNOPQRSTUVSafe3457^3Binds free type variables as universally quantifieda3Replaces bound type variables with free, fresh onesbMost general unifiercMakes a substitution [x -> t]dType inference functionWXYZ[\]^_`abcdefghWXYZ[\]^_`abcdef[\]hg^WXYZ_`abcdefWXYZ[\]^_`abcdefgh Safe4ijklijklijklijkl Safe6 !"#$%&'()*+DEFGHIJKLMNOPWXYZ[\]^_`abcdefijklm     !"#$%&'()*+,-./01234567899:;<=>?@ABCDEFBCGHIJKLLMNOPQRSTUVWXYZ[\]]^_``abcdefghijkl m n o pqltext_BDNJiJsfadt3WqvHNwUMavLText.Parser.LexerLText.Internal.ClassesLText.Internal.ExprLText.Parser.ExprLText.Parser.DocumentLText.RendererLText.Internal.TypesLText.Internal.InferenceLText.Internal.EvaluationLText.Internal TokenState followingFollowingTokenFollowsBackslash ExprTokensTLambTArrowTLParenTRParenTIdentTGroupinitTokenState runTokenstokenizerunGroupgrouplexer$fShowExprTokens SubstitutableapplyBindablefvSetLikeemptyunion intersection difference$fSubstitutablesubstnamedomainf$fBindablevarsnamef $fSetLikeSet $fSetLikeMapExprEVarEAppEAbsELetETextEConcExprVarSpanlitsAtTopLevelprExp prParenExp $fShowExpr$fSubstitutableMap[]ExprExpr$fBindableSet[]Expr ParseState inLambdaDec isFreshScope exprSoFarinitParseStaterunParse parseExprmakeExpr testParse HeaderSchemaVar getHeader parseDelim parseDocument showHeaderrenderHeaderSchemarenderhasAritySubstPrenexTypeTVarTFunTTextTypeVar nullSubst composeSubstprType prParenTypeprPrenex $fShowPrenex $fShowType$fSubstitutableMap[]TypePrenex$fBindableSet[]Prenex$fSubstitutableMap[]TypeType$fBindableSet[]TypeTIStatetiSupplytiSubstContextremove generalizerunTInewTyVar instantiatemguvarBindti typeInferencetest$fSubstitutableMap[]TypeContext$fBindableSet[]ContextrunEv freshExprVarreducealpha