Module Pr_r

val flag_add_locations : bool ref
val flag_comments_in_phrases : bool ref
val flag_extensions_are_irrefutable : bool ref
val flag_expand_declare : bool ref
val flag_horiz_let_in : bool ref
val flag_sequ_begin_at_eol : bool ref
val flag_equilibrate_cases : bool ref
val flag_expand_letop_syntax : bool ref
val flag_where_after_in : bool ref
val flag_where_after_let_eq : bool ref
val flag_where_after_match : bool ref
val flag_where_after_lparen : bool ref
val flag_where_after_field_eq : bool ref
val flag_where_in_sequences : bool ref
val flag_where_after_then : bool ref
val flag_where_after_value_eq : bool ref
val flag_where_after_arrow : bool ref
val sep : string option ref
val pr_attribute_body : MLast.attribute_body Eprinter.t
val error : Ploc.t -> string -> 'a
val horiz_vertic_if : bool -> (unit -> string) -> (unit -> string) -> string
val is_infix : string -> bool
val is_keyword : string -> bool
val has_special_chars : string -> bool
val is_irrefut_patt : MLast.patt -> bool
val get_defined_ident : MLast.patt -> string list
val un_irrefut_patt : MLast.patt -> MLast.patt * MLast.expr
val not_impl : string -> Pprintf.pr_context -> 'a -> string
val expand_lprintf : Pprintf.pr_context -> Ploc.t -> (Pprintf.pr_context -> string) -> string
val var_escaped : Pprintf.pr_context -> (Ploc.t * string) -> string
val cons_escaped : Pprintf.pr_context -> string -> string
val mod_ident : Pprintf.pr_context -> (Ploc.t * string list) -> string
val semi_after : (Pprintf.pr_context -> 'a -> 'b) -> Pprintf.pr_context -> 'a -> 'b
val star_after : (Pprintf.pr_context -> 'a -> 'b) -> Pprintf.pr_context -> 'a -> 'b
val op_after : (Pprintf.pr_context -> 'a -> 'b) -> Pprintf.pr_context -> ('a * string) -> 'b
val and_before : (Pprintf.pr_context -> 'a -> 'b) -> Pprintf.pr_context -> 'a -> 'b
val bar_before : (Pprintf.pr_context -> 'a -> 'b) -> Pprintf.pr_context -> 'a -> 'b
val space_before : (Pprintf.pr_context -> 'a -> 'b) -> Pprintf.pr_context -> 'a -> 'b
val andop_before : (Pprintf.pr_context -> (string * 'a) -> 'b) -> Pprintf.pr_context -> (string * 'a) -> 'b
val operator : Pprintf.pr_context -> (Pprintf.pr_context -> 'a -> string) -> (Pprintf.pr_context -> 'b -> string) -> 'c -> string -> 'a -> 'b -> string
val left_operator : Pprintf.pr_context -> int -> ('a -> ('a * string * 'a) option) -> 'a Prtools.pr_fun -> 'a -> string
val right_operator : Pprintf.pr_context -> int -> ('a -> ('a * string * 'a) option) -> 'a Prtools.pr_fun -> 'a -> string
val uidopt_to_maybe_blank : string Ploc.vala option -> string
val expr : Eprinter.pr_context -> MLast.expr -> string
val patt : Eprinter.pr_context -> MLast.patt -> string
val ctyp : Eprinter.pr_context -> MLast.ctyp -> string
val ctyp_below_alg_attribute : Eprinter.pr_context -> MLast.ctyp -> string
val str_item : Eprinter.pr_context -> MLast.str_item -> string
val sig_item : Eprinter.pr_context -> MLast.sig_item -> string
val longident : Eprinter.pr_context -> MLast.longid -> string
val module_expr : Eprinter.pr_context -> MLast.module_expr -> string
val module_type : Eprinter.pr_context -> MLast.module_type -> string
val module_type_level_sig : Eprinter.pr_context -> MLast.module_type -> string
val expr_fun_args : MLast.expr -> MLast.patt list * MLast.expr
val attribute_body : Eprinter.pr_context -> MLast.attribute_body -> string
val pr_attribute : string -> Pprintf.pr_context -> MLast.attribute_body Ploc.vala -> string
val pr_extension : string -> Pprintf.pr_context -> MLast.attribute_body Ploc.vala -> string
val longident_lident : Pprintf.pr_context -> (MLast.longid Ploc.vala option * string Ploc.vala) -> string
val comm_bef : Prtools.pr_context -> MLast.loc -> string
val only_spaces : string -> bool
val has_newlines : string -> bool
val strip_heading_spaces : string -> string
val strip_one_heading_space : string -> string
val comm_expr : (Prtools.pr_context -> MLast.expr -> string) -> Prtools.pr_context -> MLast.expr -> string
val comm_patt_any : (Prtools.pr_context -> (MLast.patt * 'a) -> string) -> Prtools.pr_context -> (MLast.patt * 'a) -> string
val patt_as : Eprinter.pr_context -> MLast.patt -> string
val default_lang : string
val utf8 : bool
val arrow : unit -> string
val binding : (Pprintf.pr_context -> 'a -> string) -> Pprintf.pr_context -> (MLast.patt * 'a) -> string
val is_polytype_constraint : MLast.patt -> bool
val is_type_constraint : MLast.patt -> bool
type seq =
  1. | SE_let of Ploc.t * bool * (MLast.patt * MLast.expr * MLast.attributes) list * seq
  2. | SE_let_module of Ploc.t * string Ploc.vala option * MLast.module_expr * seq
  3. | SE_let_open of Ploc.t * bool * MLast.module_expr * seq
  4. | SE_closed of MLast.expr * seq
  5. | SE_other of MLast.expr * seq option
val seq_of_expr : MLast.expr -> seq
val seq_of_expr_ne_list : MLast.expr -> MLast.expr list -> seq
val true_sequence : seq -> bool
val flatten_sequence : MLast.expr -> seq option
val sequencify : MLast.expr -> seq option
val can_be_displayed_as_where : 'a -> (MLast.patt * MLast.expr * 'b) list -> MLast.expr -> ('a * MLast.patt * MLast.expr * MLast.expr) option
val forward_expr_wh : (Eprinter.pr_context -> MLast.expr -> string) ref
val value_or_let_binding : ((Pprintf.pr_context -> unit -> string) -> Prtools.pr_context -> seq -> string) -> Prtools.pr_context -> (MLast.patt * MLast.expr * MLast.attribute_body Ploc.vala list Ploc.vala) -> string
val sequence_box : (Pprintf.pr_context -> unit -> string) -> Prtools.pr_context -> seq -> string
val hvseq : Prtools.pr_context -> seq -> string
val letop_up_to_in : string -> Prtools.pr_context -> (bool * (string * (MLast.patt * MLast.expr * MLast.attributes)) list) -> string
val let_module_up_to_in : Pprintf.pr_context -> (string Ploc.vala option * MLast.module_expr) -> string
val let_open_up_to_in : Pprintf.pr_context -> (bool * MLast.module_expr) -> string
val where_binding : Prtools.pr_context -> (bool * MLast.patt * MLast.expr * MLast.expr) -> string
val expr_wh : Prtools.pr_context -> MLast.expr -> string
val match_assoc : bool -> Prtools.pr_context -> (MLast.patt * MLast.expr option Ploc.vala * MLast.expr) -> string
val label_patt : Eprinter.pr_context -> MLast.patt -> string
val record_binding : Prtools.pr_context -> (MLast.patt * MLast.expr) -> string
val match_assoc_sh : bool -> Pprintf.pr_context -> (MLast.patt * MLast.expr option Ploc.vala * MLast.expr) -> string
val match_assoc_list : Pprintf.pr_context -> (MLast.patt * MLast.expr option Ploc.vala * MLast.expr) list -> string
val make_expr_list : MLast.expr -> MLast.expr list * MLast.expr option * string
val make_patt_list : MLast.patt -> MLast.patt list * MLast.patt option
val start_with : string -> string -> bool
val greek_tab : string array
val index_tab : string array
val try_greek : string -> string option
val typevar : Pprintf.pr_context -> string -> string
val type_param : Pprintf.pr_context -> (string option Ploc.vala * (bool option * bool)) -> string
val type_constraint : Pprintf.pr_context -> (MLast.ctyp * MLast.ctyp) -> string
val type_decl : Prtools.pr_context -> MLast.type_decl -> string
val label_decl : Pprintf.pr_context -> (Ploc.t * string * bool * MLast.ctyp * MLast.attribute_body Ploc.vala list Ploc.vala) -> string
val typevars_binder : Pprintf.pr_context -> string list -> string
val cons_decl : Pprintf.pr_context -> ('a * string Ploc.vala * string list Ploc.vala * MLast.ctyp list Ploc.vala * MLast.ctyp option Ploc.vala * MLast.attribute_body Ploc.vala list Ploc.vala) -> string
val extension_constructor : Ploc.t -> Pprintf.pr_context -> MLast.extension_constructor -> string
val has_ecs_with_params : MLast.extension_constructor list -> bool
val extension_constructors : Ploc.t -> Pprintf.pr_context -> MLast.extension_constructor list -> string
val type_extension : Ploc.t -> Prtools.pr_context -> MLast.type_extension -> string
val has_cons_with_params : ('a * 'b * 'c * 'd list Ploc.vala * 'e * 'f) list -> bool
val alone_in_line : Prtools.pr_context -> bool
val equality_threshold : float
val are_close : ('a -> string) -> 'a -> 'a -> bool
val get_else_if : MLast.expr -> (MLast.expr * MLast.expr) list * MLast.expr
val if_then : bool -> (Prtools.pr_context -> MLast.expr -> string) -> Prtools.pr_context -> (MLast.expr * MLast.expr) -> string
val else_if_then : bool -> (Pprintf.pr_context -> MLast.expr -> string) -> Prtools.pr_context -> (MLast.expr * MLast.expr) -> string
val loop_else_if : bool -> (Pprintf.pr_context -> MLast.expr -> string) -> Pprintf.pr_context -> (MLast.expr * MLast.expr) list -> string
val ending_else : bool -> (Pprintf.pr_context -> MLast.expr -> string) -> Prtools.pr_context -> MLast.expr -> string
val if_case_has_vertic : (Prtools.pr_context -> MLast.expr -> string) -> Prtools.pr_context -> MLast.expr -> MLast.expr -> (MLast.expr * MLast.expr) list -> MLast.expr -> bool
val expr_short : Eprinter.pr_context -> MLast.expr -> string
val string : Pprintf.pr_context -> string -> string
val lident : Pprintf.pr_context -> string -> string
val external_decl : Pprintf.pr_context -> (Ploc.t * string * string list * MLast.ctyp * string list * MLast.attribute_body Ploc.vala list) -> string
val external_decl_original : Pprintf.pr_context -> ('a * string * string list * MLast.ctyp * string list * MLast.attribute_body Ploc.vala list) -> string
val exception_decl : Pprintf.pr_context -> (Ploc.t * string * MLast.ctyp list * string list * MLast.attribute_body Ploc.vala list * MLast.attribute_body Ploc.vala list) -> string
val functor_parameter_unvala : ('a Ploc.vala option Ploc.vala * 'b) option -> ('a option * 'b) option
val str_module : string -> Prtools.pr_context -> (string option * MLast.module_expr * MLast.attribute_body Ploc.vala list Ploc.vala) -> string
val sig_module_or_module_type : string -> string -> Prtools.pr_context -> (string option * MLast.module_type * MLast.attribute_body Ploc.vala list Ploc.vala) -> string
val str_or_sig_functor : Pprintf.pr_context -> (string option * MLast.module_type) option -> (Pprintf.pr_context -> 'a -> string) -> 'a -> string
val con_typ_pat : Pprintf.pr_context -> ('a * (MLast.longid Ploc.vala option * string Ploc.vala) * (string option Ploc.vala * (bool option * bool)) list) -> string
val string_eval : string -> string
val with_constraint : Pprintf.pr_context -> MLast.with_constr -> string
val is_unary : string -> bool
val unary : (string -> bool) -> (Pprintf.pr_context -> MLast.expr -> 'a) -> Pprintf.pr_context -> MLast.expr -> 'a
val nlist3 : (Prtools.pr_context -> ('a * bool) -> string) -> (Prtools.pr_context -> ('a * bool) -> string) -> Prtools.pr_context -> 'a list -> string
val map_option : ('a -> 'b) -> 'a option -> 'b option
val qs : Pprintf.pr_context -> string -> string
val apply_printer : (Prtools.pr_context -> 'a -> string) -> (('a * Ploc.t) list * Ploc.t) -> unit
val is_uppercase : char -> bool
val set_flags : string -> unit
val default_flag : unit -> string
val set_wflags : string -> unit
val default_wflag : unit -> string