sig
  type t =
      Num of int
    | Var of string
    | Op of Op.t * T.Ast.t * T.Ast.t
    | Ifz of T.Ast.t * T.Ast.t * T.Ast.t
    | Let of string * T.Ast.t * T.Ast.t
    | App of T.Ast.t * T.Ast.t
    | Fun of string * T.Type.t * T.Ast.t
    | Fix of string * T.Type.t * T.Ast.t
  val erase : T.Ast.t -> S.Ast.t
end