+ (** create a singleton from a given function. Given function is invoked the
+ * first time it gets called. Next invocation will return first value *)
+val singleton: (unit -> 'a) -> (unit -> 'a)
+
+ (** create a directory, building also parents if needed
+ * @raise Failure when unable to create some directory *)
+val mkdir: string -> unit
+
+val qualify: MatitaTypes.status -> string -> string
+
+val get_proof_status: MatitaTypes.status -> ProofEngineTypes.status
+val get_proof_metasenv: MatitaTypes.status -> Cic.metasenv
+val get_proof_context: MatitaTypes.status -> Cic.context
+val get_proof_conclusion: MatitaTypes.status -> Cic.term
+
+ (** given the base name of an image, returns its full path *)
+val image_path: string -> string
+val obj_file_of_baseuri: string -> string
+val obj_file_of_script: string -> string
+
+ (** invoke a given function and return its value; in addition il will print
+ * the given string before invoking it and "/" ^ the given string afterwards.
+ * This permit tracing of functions which does not return a value *)
+val debug_wrap: string -> (unit -> 'a) -> 'a