sig
  val print_maybe_qualified_datacon :
    Datacon.name SurfaceSyntax.maybe_qualified -> MzPprint.document
  val pmaybe_qualified_datacon :
    Buffer.t -> Datacon.name SurfaceSyntax.maybe_qualified -> unit
  val print_datacon_reference :
    SurfaceSyntax.datacon_reference -> MzPprint.document
  val print_patexpr :
    TypeCore.env ->
    Expressions.pattern * Expressions.expression -> MzPprint.document
  val print_patexprs :
    TypeCore.env ->
    (Expressions.pattern * Expressions.expression) list -> MzPprint.document
  val print_pat : TypeCore.env -> Expressions.pattern -> MzPprint.document
  val print_tapp : TypeCore.env -> Expressions.tapp -> MzPprint.document
  val print_expr :
    TypeCore.env -> Expressions.expression -> MzPprint.document
  val print_rec_flag : Expressions.rec_flag -> MzPprint.document
  val print_ebinder :
    TypeCore.env ->
    TypeCore.type_binding * TypeCore.flavor -> MzPprint.document
  val print_binder :
    TypeCore.env ->
    (Variable.name * Kind.kind * TypeCore.location) * TypeCore.flavor ->
    MzPprint.document
  val print_declaration :
    TypeCore.env ->
    Expressions.declaration ->
    TypeCore.env * MzPprint.document *
    (Expressions.declaration list -> Expressions.declaration list)
  val print_declarations :
    TypeCore.env -> Expressions.declaration list -> MzPprint.document
  val print_sig_item :
    TypeCore.env -> Variable.name * TypeCore.typ -> MzPprint.document
  val psigitem :
    Buffer.t -> TypeCore.env * (Variable.name * TypeCore.typ) -> unit
  val pdeclarations :
    Buffer.t -> TypeCore.env * Expressions.declaration list -> unit
  val pexpr : Buffer.t -> TypeCore.env * Expressions.expression -> unit
  val ppat : Buffer.t -> TypeCore.env * Expressions.pattern -> unit
end