'module' Keyword.Reserved ' ' Text.Whitespace 'Main' Name.Namespace '\n' Text.Whitespace '\n' Text.Whitespace 'data' Keyword.Reserved ' ' Text.Whitespace 'Ty' Keyword.Type ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'TyInt' Keyword.Type ' ' Text.Whitespace '|' Operator.Word ' ' Text.Whitespace 'TyBool' Keyword.Type ' ' Text.Whitespace '|' Operator.Word ' ' Text.Whitespace 'TyFun' Keyword.Type ' ' Text.Whitespace 'Ty' Keyword.Type ' ' Text.Whitespace 'Ty' Keyword.Type '\n' Text.Whitespace '\n' Text.Whitespace 'interpTy' Name.Function ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'Ty' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Type' Keyword.Type '\n' Text.Whitespace 'interpTy' Text ' ' Text.Whitespace 'TyInt' Keyword.Type ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'Int' Keyword.Type '\n' Text.Whitespace 'interpTy' Text ' ' Text.Whitespace 'TyBool' Keyword.Type ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'Bool' Keyword.Type '\n' Text.Whitespace 'interpTy' Text ' ' Text.Whitespace '(' Operator.Word 'TyFun' Keyword.Type ' ' Text.Whitespace 's' Text ' ' Text.Whitespace 't' Text ')' Operator.Word ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'interpTy' Text ' ' Text.Whitespace 's' Text ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'interpTy' Text ' ' Text.Whitespace 't' Text '\n' Text.Whitespace '\n' Text.Whitespace 'using' Keyword.Reserved ' ' Text.Whitespace '(' Operator.Word 'G' Keyword.Type ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'Vect' Keyword.Type ' ' Text.Whitespace 'n' Text ' ' Text.Whitespace 'Ty' Keyword.Type ')' Operator.Word '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'data' Keyword.Reserved ' ' Text.Whitespace 'Env' Keyword.Type ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'Vect' Keyword.Type ' ' Text.Whitespace 'n' Text ' ' Text.Whitespace 'Ty' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Type' Keyword.Type ' ' Text.Whitespace 'where' Keyword.Reserved '\n' Text.Whitespace ' ' Text.Whitespace 'Nil' Name.Function ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'Env' Keyword.Type ' ' Text.Whitespace 'Nil' Keyword.Type '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace '(::)' Operator.Word ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'interpTy' Text ' ' Text.Whitespace 'a' Text ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Env' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Env' Keyword.Type ' ' Text.Whitespace '(' Operator.Word 'a' Text ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'G' Keyword.Type ')' Operator.Word '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'data' Keyword.Reserved ' ' Text.Whitespace 'HasType' Keyword.Type ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace '(' Operator.Word 'i' Text ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'Fin' Keyword.Type ' ' Text.Whitespace 'n' Text ')' Operator.Word ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Vect' Keyword.Type ' ' Text.Whitespace 'n' Text ' ' Text.Whitespace 'Ty' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Ty' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Type' Keyword.Type ' ' Text.Whitespace 'where' Keyword.Reserved '\n' Text.Whitespace ' ' Text.Whitespace 'stop' Name.Function ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'HasType' Keyword.Type ' ' Text.Whitespace 'fZ' Text ' ' Text.Whitespace '(' Operator.Word 't' Text ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'G' Keyword.Type ')' Operator.Word ' ' Text.Whitespace 't' Text '\n' Text.Whitespace ' ' Text.Whitespace 'pop' Name.Function ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'HasType' Keyword.Type ' ' Text.Whitespace 'k' Text ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 't' Text ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'HasType' Keyword.Type ' ' Text.Whitespace '(' Operator.Word 'fS' Text ' ' Text.Whitespace 'k' Text ')' Operator.Word ' ' Text.Whitespace '(' Operator.Word 'u' Text ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'G' Keyword.Type ')' Operator.Word ' ' Text.Whitespace 't' Text '\n' Text.Whitespace '\n ' Text.Whitespace 'lookup' Name.Function ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'HasType' Keyword.Type ' ' Text.Whitespace 'i' Text ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 't' Text ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Env' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'interpTy' Text ' ' Text.Whitespace 't' Text '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'lookup' Text ' ' Text.Whitespace 'stop' Text ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace '(' Operator.Word 'x' Text ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'xs' Text ')' Operator.Word ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'x' Text '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'lookup' Text ' ' Text.Whitespace '(' Operator.Word 'pop' Text ' ' Text.Whitespace 'k' Text ')' Operator.Word ' ' Text.Whitespace '(' Operator.Word 'x' Text ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'xs' Text ')' Operator.Word ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'lookup' Text ' ' Text.Whitespace 'k' Text ' ' Text.Whitespace 'xs' Text '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'data' Keyword.Reserved ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'Vect' Keyword.Type ' ' Text.Whitespace 'n' Text ' ' Text.Whitespace 'Ty' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Ty' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Type' Keyword.Type ' ' Text.Whitespace 'where' Keyword.Reserved '\n' Text.Whitespace ' ' Text.Whitespace 'Var' Name.Function ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'HasType' Keyword.Type ' ' Text.Whitespace 'i' Text ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 't' Text ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 't' Text '\n' Text.Whitespace ' ' Text.Whitespace 'Val' Name.Function ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace '(' Operator.Word 'x' Text ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'Int' Keyword.Type ')' Operator.Word ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 'TyInt' Keyword.Type '\n' Text.Whitespace ' ' Text.Whitespace 'Lam' Name.Function ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace '(' Operator.Word 'a' Text ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'G' Keyword.Type ')' Operator.Word ' ' Text.Whitespace 't' Text ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace '(' Operator.Word 'TyFun' Keyword.Type ' ' Text.Whitespace 'a' Text ' ' Text.Whitespace 't' Text ')' Operator.Word '\n' Text.Whitespace ' ' Text.Whitespace 'App' Name.Function ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace '(' Operator.Word 'TyFun' Keyword.Type ' ' Text.Whitespace 'a' Text ' ' Text.Whitespace 't' Text ')' Operator.Word ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 'a' Text ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 't' Text '\n' Text.Whitespace ' ' Text.Whitespace 'Op' Name.Function ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace '(' Operator.Word 'interpTy' Text ' ' Text.Whitespace 'a' Text ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'interpTy' Text ' ' Text.Whitespace 'b' Text ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'interpTy' Text ' ' Text.Whitespace 'c' Text ')' Operator.Word ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 'a' Text ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 'b' Text ' ' Text.Whitespace '->' Operator.Word '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 'c' Text '\n' Text.Whitespace ' ' Text.Whitespace 'If' Name.Function ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 'TyBool' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 'a' Text ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 'a' Text ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 'a' Text '\n' Text.Whitespace ' ' Text.Whitespace 'Bind' Name.Function ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 'a' Text ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace '(' Operator.Word 'interpTy' Text ' ' Text.Whitespace 'a' Text ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 'b' Text ')' Operator.Word ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 'b' Text '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'dsl' Keyword.Reserved ' ' Text.Whitespace 'expr' Text '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'lambda' Text ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'Lam' Keyword.Type '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'variable' Text ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'Var' Keyword.Type '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'index_first' Text ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'stop' Text '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'index_next' Text ' ' Text.Whitespace ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'pop' Text '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace '(<$>)' Operator.Word ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace '|(' Operator.Word 'f' Text ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace '(' Operator.Word 'TyFun' Keyword.Type ' ' Text.Whitespace 'a' Text ' ' Text.Whitespace 't' Text '))' Operator.Word ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 'a' Text ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 't' Text '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace '(<$>)' Operator.Word ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '\\' Operator.Word 'f' Text ',' Text ' ' Text.Whitespace 'a' Text ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace 'App' Keyword.Type ' ' Text.Whitespace 'f' Text ' ' Text.Whitespace 'a' Text '\n' Text.Whitespace '\n ' Text.Whitespace 'pure' Name.Function ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 'a' Text ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 'a' Text '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'pure' Text ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'id' Text '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'syntax' Keyword.Reserved ' ' Text.Whitespace 'IF' Keyword.Type ' ' Text.Whitespace '[' Operator.Word 'x' Text ']' Operator.Word ' ' Text.Whitespace 'THEN' Keyword.Type ' ' Text.Whitespace '[' Operator.Word 't' Text ']' Operator.Word ' ' Text.Whitespace 'ELSE' Keyword.Type ' ' Text.Whitespace '[' Operator.Word 'e' Text ']' Operator.Word ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'If' Keyword.Type ' ' Text.Whitespace 'x' Text ' ' Text.Whitespace 't' Text ' ' Text.Whitespace 'e' Text '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace '(==)' Operator.Word ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 'TyInt' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 'TyInt' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 'TyBool' Keyword.Type '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace '(==)' Operator.Word ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'Op' Keyword.Type ' ' Text.Whitespace '(==)' Operator.Word '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace '(<)' Operator.Word ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 'TyInt' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 'TyInt' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 'TyBool' Keyword.Type '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace '(<)' Operator.Word ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'Op' Keyword.Type ' ' Text.Whitespace '(<)' Operator.Word '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'instance' Keyword.Reserved ' ' Text.Whitespace 'Num' Keyword.Type ' ' Text.Whitespace '(' Operator.Word 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 'TyInt' Keyword.Type ')' Operator.Word ' ' Text.Whitespace 'where' Keyword.Reserved '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace '(+)' Operator.Word ' ' Text.Whitespace 'x' Text ' ' Text.Whitespace 'y' Text ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'Op' Keyword.Type ' ' Text.Whitespace '(+)' Operator.Word ' ' Text.Whitespace 'x' Text ' ' Text.Whitespace 'y' Text '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace '(-)' Operator.Word ' ' Text.Whitespace 'x' Text ' ' Text.Whitespace 'y' Text ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'Op' Keyword.Type ' ' Text.Whitespace '(-)' Operator.Word ' ' Text.Whitespace 'x' Text ' ' Text.Whitespace 'y' Text '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace '(*)' Operator.Word ' ' Text.Whitespace 'x' Text ' ' Text.Whitespace 'y' Text ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'Op' Keyword.Type ' ' Text.Whitespace '(*)' Operator.Word ' ' Text.Whitespace 'x' Text ' ' Text.Whitespace 'y' Text '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'abs' Text ' ' Text.Whitespace 'x' Text ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'IF' Keyword.Type ' ' Text.Whitespace '(' Operator.Word 'x' Text ' ' Text.Whitespace '<' Operator.Word ' ' Text.Whitespace '0' Literal.Number.Integer ')' Operator.Word ' ' Text.Whitespace 'THEN' Keyword.Type ' ' Text.Whitespace '(-' Operator.Word 'x' Text ')' Operator.Word ' ' Text.Whitespace 'ELSE' Keyword.Type ' ' Text.Whitespace 'x' Text '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'fromInteger' Text ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'Val' Keyword.Type ' ' Text.Whitespace '.' Operator.Word ' ' Text.Whitespace 'fromInteger' Text '\n\n ' Text.Whitespace '||| Evaluates an expression in the given context.' Comment.Single '\n' Text.Whitespace ' ' Text.Whitespace 'interp' Name.Function ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'Env' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace '{' Operator.Word 'static' Keyword.Reserved '}' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace 't' Text ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'interpTy' Text ' ' Text.Whitespace 't' Text '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'interp' Text ' ' Text.Whitespace 'env' Text ' ' Text.Whitespace '(' Operator.Word 'Var' Keyword.Type ' ' Text.Whitespace 'i' Text ')' Operator.Word ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'lookup' Text ' ' Text.Whitespace 'i' Text ' ' Text.Whitespace 'env' Text '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'interp' Text ' ' Text.Whitespace 'env' Text ' ' Text.Whitespace '(' Operator.Word 'Val' Keyword.Type ' ' Text.Whitespace 'x' Text ')' Operator.Word ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'x' Text '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'interp' Text ' ' Text.Whitespace 'env' Text ' ' Text.Whitespace '(' Operator.Word 'Lam' Keyword.Type ' ' Text.Whitespace 'sc' Text ')' Operator.Word ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '\\' Operator.Word 'x' Text ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace 'interp' Text ' ' Text.Whitespace '(' Operator.Word 'x' Text ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'env' Text ')' Operator.Word ' ' Text.Whitespace 'sc' Text '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'interp' Text ' ' Text.Whitespace 'env' Text ' ' Text.Whitespace '(' Operator.Word 'App' Keyword.Type ' ' Text.Whitespace 'f' Text ' ' Text.Whitespace 's' Text ')' Operator.Word ' ' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '(' Operator.Word 'interp' Text ' ' Text.Whitespace 'env' Text ' ' Text.Whitespace 'f' Text ')' Operator.Word ' ' Text.Whitespace '(' Operator.Word 'interp' Text ' ' Text.Whitespace 'env' Text ' ' Text.Whitespace 's' Text ')' Operator.Word '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'interp' Text ' ' Text.Whitespace 'env' Text ' ' Text.Whitespace '(' Operator.Word 'Op' Keyword.Type ' ' Text.Whitespace 'op' Text ' ' Text.Whitespace 'x' Text ' ' Text.Whitespace 'y' Text ')' Operator.Word ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'op' Text ' ' Text.Whitespace '(' Operator.Word 'interp' Text ' ' Text.Whitespace 'env' Text ' ' Text.Whitespace 'x' Text ')' Operator.Word ' ' Text.Whitespace '(' Operator.Word 'interp' Text ' ' Text.Whitespace 'env' Text ' ' Text.Whitespace 'y' Text ')' Operator.Word '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'interp' Text ' ' Text.Whitespace 'env' Text ' ' Text.Whitespace '(' Operator.Word 'If' Keyword.Type ' ' Text.Whitespace 'x' Text ' ' Text.Whitespace 't' Text ' ' Text.Whitespace 'e' Text ')' Operator.Word ' ' Text.Whitespace ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'if' Keyword.Reserved ' ' Text.Whitespace '(' Operator.Word 'interp' Text ' ' Text.Whitespace 'env' Text ' ' Text.Whitespace 'x' Text ')' Operator.Word ' ' Text.Whitespace 'then' Keyword.Reserved ' ' Text.Whitespace '(' Operator.Word 'interp' Text ' ' Text.Whitespace 'env' Text ' ' Text.Whitespace 't' Text ')' Operator.Word ' ' Text.Whitespace 'else' Keyword.Reserved ' ' Text.Whitespace '(' Operator.Word 'interp' Text ' ' Text.Whitespace 'env' Text ' ' Text.Whitespace 'e' Text ')' Operator.Word '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'interp' Text ' ' Text.Whitespace 'env' Text ' ' Text.Whitespace '(' Operator.Word 'Bind' Keyword.Type ' ' Text.Whitespace 'v' Text ' ' Text.Whitespace 'f' Text ')' Operator.Word ' ' Text.Whitespace ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'interp' Text ' ' Text.Whitespace 'env' Text ' ' Text.Whitespace '(' Operator.Word 'f' Text ' ' Text.Whitespace '(' Operator.Word 'interp' Text ' ' Text.Whitespace 'env' Text ' ' Text.Whitespace 'v' Text '))' Operator.Word '\n' Text.Whitespace '\n ' Text.Whitespace 'eId' Name.Function ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace '(' Operator.Word 'TyFun' Keyword.Type ' ' Text.Whitespace 'TyInt' Keyword.Type ' ' Text.Whitespace 'TyInt' Keyword.Type ')' Operator.Word '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'eId' Text ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'expr' Text ' ' Text.Whitespace '(\\' Operator.Word 'x' Text ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace 'x' Text ')' Operator.Word '\n' Text.Whitespace '\n ' Text.Whitespace 'eTEST' Name.Function ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace '(' Operator.Word 'TyFun' Keyword.Type ' ' Text.Whitespace 'TyInt' Keyword.Type ' ' Text.Whitespace '(' Operator.Word 'TyFun' Keyword.Type ' ' Text.Whitespace 'TyInt' Keyword.Type ' ' Text.Whitespace 'TyInt' Keyword.Type '))' Operator.Word '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'eTEST' Text ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'expr' Text ' ' Text.Whitespace '(\\' Operator.Word 'x' Text ',' Text ' ' Text.Whitespace 'y' Text ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace 'y' Text ')' Operator.Word '\n' Text.Whitespace '\n ' Text.Whitespace 'eAdd' Name.Function ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace '(' Operator.Word 'TyFun' Keyword.Type ' ' Text.Whitespace 'TyInt' Keyword.Type ' ' Text.Whitespace '(' Operator.Word 'TyFun' Keyword.Type ' ' Text.Whitespace 'TyInt' Keyword.Type ' ' Text.Whitespace 'TyInt' Keyword.Type '))' Operator.Word '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'eAdd' Text ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'expr' Text ' ' Text.Whitespace '(\\' Operator.Word 'x' Text ',' Text ' ' Text.Whitespace 'y' Text ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace 'Op' Keyword.Type ' ' Text.Whitespace '(+)' Operator.Word ' ' Text.Whitespace 'x' Text ' ' Text.Whitespace 'y' Text ')' Operator.Word '\n' Text.Whitespace '\n ' Text.Whitespace 'eDouble' Name.Function ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace '(' Operator.Word 'TyFun' Keyword.Type ' ' Text.Whitespace 'TyInt' Keyword.Type ' ' Text.Whitespace 'TyInt' Keyword.Type ')' Operator.Word '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'eDouble' Text ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'expr' Text ' ' Text.Whitespace '(\\' Operator.Word 'x' Text ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace 'App' Keyword.Type ' ' Text.Whitespace '(' Operator.Word 'App' Keyword.Type ' ' Text.Whitespace 'eAdd' Text ' ' Text.Whitespace 'x' Text ')' Operator.Word ' ' Text.Whitespace '(' Operator.Word 'Var' Keyword.Type ' ' Text.Whitespace 'stop' Text '))' Operator.Word '\n' Text.Whitespace '\n ' Text.Whitespace 'eFac' Name.Function ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'Expr' Keyword.Type ' ' Text.Whitespace 'G' Keyword.Type ' ' Text.Whitespace '(' Operator.Word 'TyFun' Keyword.Type ' ' Text.Whitespace 'TyInt' Keyword.Type ' ' Text.Whitespace 'TyInt' Keyword.Type ')' Operator.Word '\n' Text.Whitespace ' ' Text.Whitespace ' ' Text.Whitespace 'eFac' Text ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'expr' Text ' ' Text.Whitespace '(\\' Operator.Word 'x' Text ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace 'IF' Keyword.Type ' ' Text.Whitespace 'x' Text ' ' Text.Whitespace '=' Operator.Word '=' Operator.Word ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace 'THEN' Keyword.Type ' ' Text.Whitespace '1' Literal.Number.Integer ' ' Text.Whitespace 'ELSE' Keyword.Type ' ' Text.Whitespace '[|' Operator.Word ' ' Text.Whitespace 'eFac' Text ' ' Text.Whitespace '(' Operator.Word 'x' Text ' ' Text.Whitespace '-' Operator.Word ' ' Text.Whitespace '1' Literal.Number.Integer ')' Operator.Word ' ' Text.Whitespace '|]' Operator.Word ' ' Text.Whitespace '*' Operator.Word ' ' Text.Whitespace 'x' Text ')' Operator.Word '\n' Text.Whitespace '\n' Text.Whitespace 'testFac' Name.Function ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'Int' Keyword.Type '\n' Text.Whitespace 'testFac' Text ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'interp' Text ' ' Text.Whitespace '[]' Operator.Word ' ' Text.Whitespace 'eFac' Text ' ' Text.Whitespace '4' Literal.Number.Integer '\n\n' Text.Whitespace '--testFacTooBig : Int' Comment.Single '\n' Text.Whitespace '--testFacTooBig = interp [] eFac 100000' Comment.Single '\n\n ' Text.Whitespace '{-' Comment.Multiline 'testFacTooBig2 : Int\ntestFacTooBig2 = interp [] eFac 1000\n' Comment.Multiline '-}' Comment.Multiline '\n' Text.Whitespace '\n' Text.Whitespace 'main' Name.Function ' ' Text.Whitespace ':' Operator.Word ' ' Text.Whitespace 'IO' Keyword.Type ' ' Text.Whitespace '()' Operator.Word '\n' Text.Whitespace 'main' Text ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'print' Text ' ' Text.Whitespace 'testFac' Text '\n' Text.Whitespace