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