sig
  val parse_toplevel : string -> Ast.toplevel_input
  val parse_expression : string -> Ast.expr
  val parse_definition : string -> Ast.id * Ast.expr
  val commands : string list
  val eval_def :
    Ast.id ->
    Ast.expr ->
    Ast.environment -> (Ast.id, Ast.typ) Hashtbl.t -> Ast.value * Ast.typ
  val repl : Ast.environment -> (Ast.id, Ast.typ) Hashtbl.t -> unit
  val handle_file : string -> unit
end