Module Scheme_eval

type state
type world = {
  1. init : Scheme.t;
  2. handlers : (string * Scheme.t) list;
  3. span : Sexpr.span;
}
type error = {
  1. message : string;
  2. at : Sexpr.span option;
}
type outcome =
  1. | Done of Scheme.t
  2. | Running
  3. | Failed of error
  4. | World of world
val create : unit -> state
val start : state -> Scheme.expr -> state
val run : ?fuel:int -> state -> outcome * state
val resume : state -> Scheme.t -> state
val call : ?fuel:int -> state -> Scheme.t -> Scheme.t list -> (Scheme.t, error) Stdlib.result * state
val take_output : state -> string * state
val eval_all : ?fuel:int -> state -> string -> (Scheme.t, error) Stdlib.result * state
val steps : state -> int
val defined : state -> string list