sig
  module type S = Backend_intf.S
  module type Arg =
    sig
      type atom
      type lemma
      val print_atom : Format.formatter -> Dot.Arg.atom -> unit
      val lemma_info :
        Dot.Arg.lemma ->
        string * string option * (Format.formatter -> unit -> unit) list
    end
  module Make :
    functor
      (S : Res.S) (A : sig
                         val print_atom : Format.formatter -> S.atom -> unit
                         val lemma_info :
                           S.lemma ->
                           string * string option *
                           (Format.formatter -> unit -> unit) list
                       end->
      sig val print : Format.formatter -> S.proof -> unit end
end