File: dir_info.mli

package info (click to toggle)
coq 8.20.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 44,116 kB
  • sloc: ml: 234,160; sh: 4,301; python: 3,270; ansic: 2,644; makefile: 882; lisp: 172; javascript: 63; xml: 24; sed: 2
file content (26 lines) | stat: -rw-r--r-- 1,022 bytes parent folder | download | duplicates (2)
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