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