functor
  (S : Res.S) (A : sig
                     val print_atom : Format.formatter -> S.atom -> unit
                     val hyp_info :
                       S.clause ->
                       string * string option *
                       (Format.formatter -> unit -> unit) list
                     val lemma_info :
                       S.clause ->
                       string * string option *
                       (Format.formatter -> unit -> unit) list
                     val assumption_info :
                       S.clause ->
                       string * string option *
                       (Format.formatter -> unit -> unit) list
                   end->
  sig val print : Format.formatter -> S.proof -> unit end