sig
  type pr_context =
    Pprintf.pr_context = {
    ind : int;
    bef : string;
    aft : string;
    dang : string;
  }
  val comm_bef : Prtools.pr_context -> MLast.loc -> string
  val source : string Pervasives.ref
  val set_comm_min_pos : int -> unit
  type 'a pr_fun = Prtools.pr_context -> '-> string
  val hlist : 'Prtools.pr_fun -> 'a list Prtools.pr_fun
  val hlist2 :
    'Prtools.pr_fun -> 'Prtools.pr_fun -> 'a list Prtools.pr_fun
  val hlistl :
    'Prtools.pr_fun -> 'Prtools.pr_fun -> 'a list Prtools.pr_fun
  val vlist : 'Prtools.pr_fun -> 'a list Prtools.pr_fun
  val vlist2 :
    'Prtools.pr_fun -> 'Prtools.pr_fun -> 'a list Prtools.pr_fun
  val vlist3 :
    ('a * bool) Prtools.pr_fun ->
    ('a * bool) Prtools.pr_fun -> 'a list Prtools.pr_fun
  val vlistl :
    'Prtools.pr_fun -> 'Prtools.pr_fun -> 'a list Prtools.pr_fun
  val vlistf : (Prtools.pr_context -> string) list Prtools.pr_fun
  val plist : 'Prtools.pr_fun -> int -> ('a * string) list Prtools.pr_fun
  val plistb : 'Prtools.pr_fun -> int -> ('a * string) list Prtools.pr_fun
  val plistl :
    'Prtools.pr_fun ->
    'Prtools.pr_fun -> int -> ('a * string) list Prtools.pr_fun
  val plistf :
    int -> ((Prtools.pr_context -> string) * string) list Prtools.pr_fun
  val plistbf :
    int -> ((Prtools.pr_context -> string) * string) list Prtools.pr_fun
  val hvlistl :
    'Prtools.pr_fun -> 'Prtools.pr_fun -> 'a list Prtools.pr_fun
  val tab : int -> string
  val flatten_sequence : MLast.expr -> MLast.expr list option
end