sig
module Ast :
sig
type t =
Unit
| Num of int
| Ref of I.Ast.t
| Var of string
| Set of I.Ast.t * I.Ast.t
| Get of I.Ast.t
| Op of Op.t * I.Ast.t * I.Ast.t
| Ifz of I.Ast.t * I.Ast.t * I.Ast.t
| Let of string * I.Ast.t * I.Ast.t
| App of I.Ast.t * I.Ast.t
| Fun of string * I.Ast.t
| Fix of string * I.Ast.t
| Seq of I.Ast.t * I.Ast.t
type 'a env = (string * 'a) list
end
module Reader :
sig
val from_chan : Pervasives.in_channel -> I.Ast.t
val from_string : string -> I.Ast.t
end
module Top :
sig
val loop :
(Pervasives.out_channel -> 'a -> unit) ->
('a I.Ast.env -> I.Ast.t -> 'a) -> unit
end
end