1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
(************************************************************************)
(* This file is licensed under The MIT License *)
(* See LICENSE for more information *)
(************************************************************************)
(** Recursive scan of a directory *)
type 'a t
(** [scan ~prefix dir] scan for coq modules in dir [prefix] will
inject a dir *)
val scan : prefix:string list -> string -> Coq_module.t t
(** [iter ~f dir_info] iterate contents, [prefix] denotes the sub-tree
we are in *)
val iter : f:(prefix:string list -> 'a list -> unit) -> 'a t -> unit
(** [fold ~f ~init dir_info] fold over each folder's contents *)
val fold : f:(prefix:string list -> 'b list -> 'a list -> 'b) -> init:'b -> 'a t -> 'b
(** Flatten the list of objects of a recursive scan *)
val coq_modules : 'a t -> 'a list
val pp : Format.formatter -> Coq_module.t t -> unit
(* To remove *)
val map : f:(prefix:string list -> 'a -> 'b) -> 'a t -> 'b t
|