package mdx

  1. Overview
  2. Docs
include module type of struct include Printtyp end
val longident : Format.formatter -> Longident.t -> unit
val ident : Format.formatter -> Ident.t -> unit
val tree_of_path : Path.t -> Outcometree.out_ident
val path : Format.formatter -> Path.t -> unit
val string_of_path : Path.t -> string
val type_path : Format.formatter -> Path.t -> unit

Print a type path taking account of -short-paths. Calls should be within wrap_printing_env.

module Out_name = Printtyp.Out_name
type namespace = Printtyp.namespace =
  1. | Type
  2. | Module
  3. | Module_type
  4. | Class
  5. | Class_type
  6. | Other
    (*

    Other bypasses the unique name for identifier mechanism

    *)
val strings_of_paths : namespace -> Path.t list -> string list

Print a list of paths, using the same naming context to avoid name collisions

val raw_type_expr : Format.formatter -> Types.type_expr -> unit
val string_of_label : Asttypes.arg_label -> string
module Naming_context = Printtyp.Naming_context
module Conflicts = Printtyp.Conflicts

The Conflicts module keeps track of conflicts arising when attributing names to identifiers and provides functions that can print explanations for these conflict in error messages

val reset : unit -> unit
val mark_loops : Types.type_expr -> unit
val reset_and_mark_loops : Types.type_expr -> unit
val reset_and_mark_loops_list : Types.type_expr list -> unit
val type_expr : Format.formatter -> Types.type_expr -> unit
val marked_type_expr : Format.formatter -> Types.type_expr -> unit

The function type_expr is the safe version of the pair (typed_expr, marked_type_expr): it takes care of marking loops in the type expression and resetting type variable names before printing. Contrarily, the function marked_type_expr should only be called on type expressions whose loops have been marked or it may stackoverflow (see #8860 for examples).

val constructor_arguments : Format.formatter -> Types.constructor_arguments -> unit
val tree_of_type_scheme : Types.type_expr -> Outcometree.out_type
val type_sch : Format.formatter -> Types.type_expr -> unit
val type_scheme : Format.formatter -> Types.type_expr -> unit
val reset_names : unit -> unit
val type_scheme_max : ?b_reset_names:bool -> Format.formatter -> Types.type_expr -> unit
val tree_of_value_description : Ident.t -> Types.value_description -> Outcometree.out_sig_item
val value_description : Ident.t -> Format.formatter -> Types.value_description -> unit
val constructor : Format.formatter -> Types.constructor_declaration -> unit
val type_declaration : Ident.t -> Format.formatter -> Types.type_declaration -> unit
val extension_constructor : Ident.t -> Format.formatter -> Types.extension_constructor -> unit
val extension_only_constructor : Ident.t -> Format.formatter -> Types.extension_constructor -> unit
val tree_of_module : Ident.t -> ?ellipsis:bool -> Types.module_type -> Types.rec_status -> Outcometree.out_sig_item
val modtype : Format.formatter -> Types.module_type -> unit
val signature : Format.formatter -> Types.signature -> unit
val tree_of_modtype_declaration : Ident.t -> Types.modtype_declaration -> Outcometree.out_sig_item
val tree_of_signature : Types.signature -> Outcometree.out_sig_item list
val tree_of_typexp : bool -> Types.type_expr -> Outcometree.out_type
val modtype_declaration : Ident.t -> Format.formatter -> Types.modtype_declaration -> unit
val class_type : Format.formatter -> Types.class_type -> unit
val class_declaration : Ident.t -> Format.formatter -> Types.class_declaration -> unit
val cltype_declaration : Ident.t -> Format.formatter -> Types.class_type_declaration -> unit
val type_expansion : Types.type_expr -> Format.formatter -> Types.type_expr -> unit
val trace : bool -> bool -> string -> Format.formatter -> (Types.type_expr * Types.type_expr) Ctype.Unification_trace.elt list -> unit
val report_unification_error : Format.formatter -> Env.t -> Ctype.Unification_trace.t -> ?type_expected_explanation:(Format.formatter -> unit) -> (Format.formatter -> unit) -> (Format.formatter -> unit) -> unit
val report_subtyping_error : Format.formatter -> Env.t -> Ctype.Unification_trace.t -> string -> Ctype.Unification_trace.t -> unit
val report_ambiguous_type_error : Format.formatter -> Env.t -> (Path.t * Path.t) -> (Path.t * Path.t) list -> (Format.formatter -> unit) -> (Format.formatter -> unit) -> (Format.formatter -> unit) -> unit
val print_items : (Env.t -> Types.signature_item -> 'a option) -> Env.t -> Types.signature_item list -> (Outcometree.out_sig_item * 'a option) list
val rewrite_double_underscore_paths : Env.t -> Path.t -> Path.t
val printed_signature : string -> Format.formatter -> Types.signature -> unit

printed_signature sourcefile ppf sg print the signature sg of sourcefile with potential warnings for name collisions

val wrap_printing_env : Env.t -> (unit -> 'a) -> 'a
OCaml

Innovation. Community. Security.