Module Generic_printer_base.Make

Parameters

module F : Features.T

Signature

module AST : sig ... end
module U : sig ... end
type 't fn = 't -> PPrint.document
class virtual print_base : object ... end

Raw generic printers base class. Those are useful for building a printer, not for consuming printers. Consumers should use the Api functor.

type print_object = < printer_name : Prelude.string ; get_span_data : Prelude.unit -> Annotation.t Prelude.list ; ty : par_state -> Hax_engine__Ast.Make(F).ty fn ; pat : par_state -> Hax_engine__Ast.Make(F).pat fn ; arm : Hax_engine__Ast.Make(F).arm fn ; expr : par_state -> Hax_engine__Ast.Make(F).expr fn ; item : Hax_engine__Ast.Make(F).item fn ; items : Hax_engine__Ast.Make(F).item Prelude.list fn >

In the end, an printer *object* should be of the type print_object.

class type print_class = object ... end
module type API = sig ... end
module Api (NewPrint : sig ... end) : sig ... end