package catala

  1. Overview
  2. Docs
Module type
Class type

A lazy tree structure mirroring the filesystem ; uses the comparison from File, so paths are case-insensitive.

type path = t

Alias for File.t

type item =
  1. | F

    Plain file

  2. | D of t

    Directory with subtree

and t = (path * item) Map.t Lazy.t

Contents of a directory, lazily loaded. The map keys are the basenames of the files and subdirectories, while the values contain the original path (with correct capitalisation)

val empty : t
val build : path -> t

Lazily builds a Tree.path from the files read at path. The names in the maps are qualified (i.e. they all start with "path/")

val subtree : t -> path -> t

Looks up a path within a lazy tree

val lookup : t -> path -> path option

Checks if there is a matching plain file (case-insensitively) ; and returns its path with the correct case if so

val union : t -> t -> t

Merges two trees. In case of conflict, lhs entry wins