sig
  type register = Register.t
  type label = Label.t
  type instr =
      Econst of int32 * Rtltree.register * Rtltree.label
    | Eload of Rtltree.register * int * Rtltree.register * Rtltree.label
    | Estore of Rtltree.register * Rtltree.register * int * Rtltree.label
    | Emunop of Ops.munop * Rtltree.register * Rtltree.label
    | Embinop of Ops.mbinop * Rtltree.register * Rtltree.register *
        Rtltree.label
    | Emubranch of Ops.mubranch * Rtltree.register * Rtltree.label *
        Rtltree.label
    | Embbranch of Ops.mbbranch * Rtltree.register * Rtltree.register *
        Rtltree.label * Rtltree.label
    | Ecall of Rtltree.register * string * Rtltree.register list *
        Rtltree.label
    | Egoto of Rtltree.label
  type cfg = Rtltree.instr Label.map
  type deffun = {
    fun_name : string;
    fun_formals : Rtltree.register list;
    fun_result : Rtltree.register;
    fun_locals : Register.set;
    fun_entry : Rtltree.label;
    fun_exit : Rtltree.label;
    fun_body : Rtltree.cfg;
  }
  type file = { funs : Rtltree.deffun list; }
  val print_instr : Stdlib.Format.formatter -> Rtltree.instr -> unit
  val print_graph :
    Stdlib.Format.formatter -> Rtltree.cfg -> Label.t -> Label.t -> unit
  val print_deffun : Stdlib.Format.formatter -> Rtltree.deffun -> unit
  val print_file : Stdlib.Format.formatter -> Rtltree.file -> unit
end