!      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl m n o p q r s t u v w x y z { | } ~  Safe4V(Matches brackets and nests token streams      Safe !" !" !" !"Safe357> #$%&'()*+,-./ #$%&'()*+ '()*+/.%&#$-,#$%&'()*+,-./Safe3570123456789:;<=>?@AB 0123456789:;<7345612089BA@?>:;=<0123456789:;<=>?@ABSafe!"357>CDEFGHIJKLMNOPQRSTUVCDEFGHIJKLMNOPQRSQPIJKLMNOVUCDEFGHTRS CDEFGHIJKLMNOPQRSTUVSafe4V^,Parser for expressions. Note - cannot parse EConc or ETextE constructors - they are implicit, and not considered in evaluation. WXYZ[\]^_ WXYZ[\]^_ WXYZ[\]^_WXYZ[\]^_Safe4NV`abcde`abcdea`bcde`abcdeSafeiPturn head of template's arity into list - still need to render inner expressionsk=Note - only use post-beta reduction: this function is partialfghijkfghijkgfhijkfghijk Safe3457lInference Monadt3Binds free type variables as universally quantifiedw3Replaces bound type variables with free, fresh onesxMost general unifieryMakes a substitution [x -> t]zType inference functionlmnopqrstuvwxyz{|}~lmnopqrstuvwxyz{|qrs~}tmnopluvwxyz{|lmnopqrstuvwxyz{|}~ Safe4 Safe<#$%&'()*+0123456789:;<CDEFGHIJKLMNOPQRSlmnopqrstuvwxyz{|    !"#$%&'()*+,-./0123456789:;<<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`aabcdefghijklmnijopqr s t t u v w w x y z { | } ~  ltext_48CuqQtQnRl9wIimhx9VzBLText.Parser.LexerLText.Parser.UnobtrusiveLText.Internal.ClassesLText.Internal.TypesLText.Internal.ExprLText.Parser.ExprLText.Parser.DocumentLText.RendererLText.Internal.InferenceLText.Internal.EvaluationLText.Internal TokenState followingFollowingTokenFollowsBackslash ExprTokensTLambTArrowTLParenTRParenTIdentTGroupinitTokenState runTokenstokenizerunGroupgrouplexer$fShowExprTokensLanguageCCppHaskell JavaScriptCssSassLessHtml DelimitedSpandoubleBackslashbackslashAsterisk doubleDash curlyDash angleBangDash unobSpans SubstitutableapplyBindablefvSetLikeemptyunion intersection difference$fSubstitutablesubstnamedomainf$fBindablevarsnamef $fSetLikeSet $fSetLikeMapSubstPrenexTypeTVarTFunTTextTypeVar nullSubst composeSubstprType prParenTypeprPrenex $fShowPrenex $fShowType$fSubstitutableMap[]TypePrenex$fBindableSet[]Prenex$fSubstitutableMap[]TypeType$fBindableSet[]TypeAnnExprAAbsAAppAVarATextAConcExprEVarEAppEAbsELetETextEConcExprVarSpanprExp prParenExp $fShowExpr$fSubstitutableMap[]ExprExpr$fBindableSet[]Expr ParseState inLambdaDec isFreshScope exprSoFarinitParseStaterunParse parseExprmakeExpr HeaderSchemaVar getHeader parseDelimeitherP parseDocument showHeaderrenderHeaderSchemarenderhasArityTITIStatetiSupplytiSubstContextremove generalizerunTInewTyVar instantiatemguvarBindti typeInferencetest$fSubstitutableMap[]TypeContext$fBindableSet[]ContextrunEv freshExprVarreducealpha