sig
module Ast :
sig
type t =
Num of int
| Var of string
| Op of Op.t * S.Ast.t * S.Ast.t
| Ifz of S.Ast.t * S.Ast.t * S.Ast.t
| Let of string * S.Ast.t * S.Ast.t
| App of S.Ast.t * S.Ast.t
| Fun of string * S.Ast.t
| Fix of string * S.Ast.t
val print : Pervasives.out_channel -> S.Ast.t -> unit
end
module Reader :
sig
val from_chan : Pervasives.in_channel -> S.Ast.t
val from_string : string -> S.Ast.t
end
module Top :
sig
val loop :
(Pervasives.out_channel -> 'a -> unit) ->
('a Env.t -> S.Ast.t -> 'a) -> unit
end
end