definition module Sjit.Syntax from Data.Either import :: Either :: Expr = Int !Int | Var !String | App !String ![Expr] :: Function = { fun_name :: !String , fun_args :: ![String] , fun_expr :: !Expr } parse_function :: !String -> Either String Function parse_interactive_line :: !String -> Either String Function