úÎaîWÿb      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a Safe-InferredNone=Token type, used to communicate between the lexer and parser $A  augmented with ( information ( The cursor'!s location while lexing the text ,GConvert a text representation of an expression into a stream of tokens ,C keeps track of position and returns the remainder of the input if  lexing fails. qbcdefghijklmnop  !"#$%&'qrstu()*+vwxyz{|}~€‚,ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª(  !"#$%&'()*+,(,#"!  ()*+$%&'>bedcfihgjnmlkop#"!  $%&'qrstu()*+vwxyz{|}~€‚,ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ªNone«A type or data constructor -Syntax tree for expressions / 6 Do m [b1, b2] b3 ~ do m { b1 b2 b3 } 0 @ Path c [(o1, m1), (o2, m2)] o3 ~ [id c {o1} m1 {o2} m2 {o3}] 1 2 List t [x, y, z] ~ [nil t,x,y,z] 2 & Natural n ~ n 3 + Family f e ~ f in e 4 / Lets [l1, l2] e ~ l1 l2 in e 5 + Annot a _A ~ a : _A 6 ( App f a ~ f a 7 2 Pi x _A _B ~ "(x : _A) !’ _B8 1 Lam x _A b ~ »(x : _A) !’ 9 & Var (V x 0) ~ x ( Var (V x n) ~ x@n : & Const c ~ c ;  Bind arg e ~ arg <- e; ? " Data c [a1, a2] ~ data c a1 a2 C + Type t [d1, d2] f ~ type t d1 d2 fold f H 2 Let f [a1, a2] _A rhs ~ let f a1 a2 : _A = rhs N1Argument for function or constructor definitions  Arg "_" _A ~ _A  Arg x _A ~ (x : _A) R2Convert an Annah expression to a Morte expression S/Convert a natural number to a Morte expression "For example, this natural number:   4 '... desugars to this Morte expression: " »(Nat : * ) !’ »(Succ : "(pred : Nat) !’ Na! !’ »(Zero : Nat # !’ Succ (Succ (Succ (Succ Zero)))T'Convert a list into a Morte expression For example, this list:   [nil Bool, True, False, False] '... desugars to this Morte expression:  »(List : *)2 !’ »(Cons : "(head : Bool) !’ "(tail : List) !’ Li !’ »(Nil : List, !’ Cons True (Cons False (Cons False Nil))U'Convert a path into a Morte expression For example, this path:   [id cat {a} f {b} g {c}] '... desugars to this Morte expression: $ »(Path : "(a : *) !’ "(b : *) !’  !’ »( Ste : "(a : *)  !’ "(b : *) !’ "(c : *) !’ "(head : cat a b) !’ "(tail : Path b c) !’ Path a c )  !’ »(End : "(a : *) !’ Path a ( !’ Step a b c f (Step b c c g (End c))V=Convert a command (i.e. do-notation) into a Morte expression For example, this command:   do m  { x0 : _A0 <- e0;  x1 : _A1 <- e1;  } &.. desugars to this Morte expression:  »(Cmd : *)* !’ »(Bind : "(b : *) !’ m b !’ (b !’ Cmd) !’ !’ »(Pure : "(x1 : _A1) !’ Cm !’ Bind _A0 e0 ( »(x0 : _A0) !’ Bind _A1 e1 Pure  ) W1Convert a let expression into a Morte expression "For example, this let expression:  / let f0 (x00 : _A00) ... (x0j : _A0j) _B0 = b0  .. / let fi (xi0 : _Ai0) ... (xij : _Aij) _Bi = bi  in e '... desugars to this Morte expression: F ( \(f0 : forall (x00 : _A00) -> ... -> forall (x0j : _A0j) -> _B0)  -> ... F -> \(fi : forall (xi0 : _Ai0) -> ... -> forall (xij : _Aij) -> _Bi)  -> e  )  / (\(x00 : _A00) -> ... -> \(x0j : _A0j) -> b0)  ... / (\(xi0 : _Ai0) -> ... -> \(xij : _Aij) -> bi) XAThis translates datatype definitions to let expressons using the  Boehm-Berarducci encoding. :For example, this mutually recursive datatype definition:   type Even  data Zero  data SuccE (predE : Odd)  fold foldEven   type Odd  data SuccO (predO : Even)  fold foldOdd   in SuccE '... desugars to seven let expressions:   let Even : * = ...  let Odd : *  let Zero : Even = ... ) let SuccE : "(predE : Odd ) !’ Even = ...) let SuccO : "(predO : Even) !’ Odd = ...' let foldEven : "(x : Even) !’ ... = ...' let foldOdd : "(x : Odd ) !’ ... = ... in SuccE ... and normalizes to:  »( predE : "(Even : *)  !’ "(Odd : *) !’ "(Zero : Even)) !’ "(SuccE : "(predE : Odd ) !’ Even( !’ "(SuccO : "(predO : Even) !’ Odd !’ Odd )  !’ »(Even : * !’ »(Odd : * !’ »(Zero : Even# !’ »(SuccE : "(predE : Odd) !’ Eve# !’ »(SuccO : "(predO : Even) !’ Od, !’ SuccE (predE Even Odd Zero SuccE SuccO)¬+Apply an expression to a list of arguments ­3Compute the correct DeBruijn index for a synthetic 9 (x) by providing ( all variables bound in between when x is introduced and when x is used. ® G zippers [1, 2, 3] = [([], 1, [2, 3]), ([1], 2, [3]), ([2, 1], 3, [])] 7«¯°±²-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRAnnah expression Morte expression STUVWX¬­³´®µ1-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX1NOPQHIJKLM?@ABCDEFG;<=>-:9876543210/.RXSVTUW«¯°±²- :9876543210/.;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX¬­³´®µNoneY#Structured type for parsing errors ]The specific parsing error ^DParsing failed, returning the invalid token and the expected tokens _3Lexing failed, returning the remainder of the text ` Parse an - from ¶ or return a Y if parsing fails aParse a type definition from ¶ or return a Y if parsing  fails YZ[\]^_·¸¹º»¼½¾¿`aÀÁ YZ[\]^_`a `aYZ[\]_^YZ[\]_^·¸¹º»¼½¾¿`aÀÁÂà        !"#$%&'())*+,-./0123456789: ;;<=>?@ABCDEFGGHIJKLMNOPQQ+RSTUVWXYXZ[\[]^_`abcdeefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡ž¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶· annah-1.0.0 Annah.Core Annah.Lexer Annah.ParserAnnah.Tutorial morte-1.6.0 Morte.CoreVVarStarBoxConstTokenEOFURLFileNumberLabelDoInEqualsLetDataFoldTypePiLambdaLArrowArrowAt SemicolonColonCommaPeriod CloseBracketOpenPathOpenList CloseBrace OpenBrace CloseParen OpenParen LocatedTokentokenpositionPositionPlineNocolumnNolexExprExprEmbedPathListNaturalFamilyLetsAnnotAppLamBindbindLhsbindRhsdataNamedataArgstypeName typeDatastypeFoldletNameletArgsletTypeletRhsArgargNameargTypedesugardesugarNatural desugarList desugarPath desugarDo desugarLets desugarFamily ParseError parseMessage ParseMessageParsingLexing exprFromText typesFromTextAlexAcc AlexAccSkip AlexAccNone AlexLastAcc AlexLastSkipAlexNone AlexReturn AlexTokenAlexSkip AlexErrorAlexEOFAlexAddrAlexA# AlexInputprevChar currBytes currInput alex_base alex_table alex_check alex_deflt alex_accepttoInttoFiletrimencodelinecolumn alexGetBytealexInputPrevChar alex_action_1 alex_action_3 alex_action_4 alex_action_5 alex_action_6 alex_action_7 alex_action_8 alex_action_9alex_action_10alex_action_11alex_action_12alex_action_13alex_action_14alex_action_15alex_action_16alex_action_17alex_action_18alex_action_19alex_action_20alex_action_21alex_action_22alex_action_23alex_action_24alex_action_25alex_action_26alex_action_27alex_action_28alex_action_29alex_action_30alex_action_31alex_action_32alex_action_33alexIndexInt16OffAddralexIndexInt32OffAddr quickIndexalexScan alexScanUser alex_scan_tkniUnbox$fFunctorAlexLastAccConsapply isShadowedByzippersconsNameconsArgsconsTypepilam$fIsStringExpr text-1.2.2.1Data.Text.Internal.LazyTextmatchlabelnumberfileurlsepBy1sepByexpr runParser$fBuildableParseError$fExceptionParseError$fShowParseError