tempi_type_of_aux_subst := !tempi_type_of_aux_subst +. time3 -. time1 ;
tempi_type_of_aux := !tempi_type_of_aux +. time2 -. time1 ;
res
+
+(** {2 Format-like pretty printers} *)
+
+let fpp_gen ppf s =
+ Format.pp_print_string ppf s;
+ Format.pp_print_newline ppf ();
+ Format.pp_print_flush ppf ()
+
+let fppsubst ppf subst = fpp_gen ppf (ppsubst subst)
+let fppterm ppf term = fpp_gen ppf (CicPp.ppterm term)
+let fppmetasenv ppf metasenv = fpp_gen ppf (ppmetasenv metasenv [])
+
substitution -> Cic.term -> (Cic.name option) list -> string
val ppmetasenv: ?sep: string -> Cic.metasenv -> substitution -> string
+(** {2 Format-like pretty printers}
+ * As above with prototypes suitable for toplevel/ocamldebug printers. No
+ * subsitutions are applied here since such printers are required to be invoked
+ * with only one argument.
+ *)
+
+val fppsubst: Format.formatter -> substitution -> unit
+val fppterm: Format.formatter -> Cic.term -> unit
+val fppmetasenv: Format.formatter -> Cic.metasenv -> unit
+
(* {2 Kernel wrappers}
* From now on we recreate a kernel abstraction where substitutions are part of
* the calculus *)