sig
type strid = int
type t
val create : unit -> Suffix_tree.T.t
val size : Suffix_tree.T.t -> int
val add : Suffix_tree.T.t -> string -> Suffix_tree.T.strid
val remove : Suffix_tree.T.t -> Suffix_tree.T.strid -> unit
val get : Suffix_tree.T.t -> Suffix_tree.T.strid -> string
val find : Suffix_tree.T.t -> string -> Suffix_tree.T.strid
val fold :
(Suffix_tree.T.strid -> string -> 'a -> 'a) ->
Suffix_tree.T.t -> 'a -> 'a
type node
val root : Suffix_tree.T.t -> Suffix_tree.T.node
val is_leaf : Suffix_tree.T.t -> Suffix_tree.T.node -> bool
val label : Suffix_tree.T.t -> Suffix_tree.T.node -> string
val length : Suffix_tree.T.t -> Suffix_tree.T.node -> int
val path : Suffix_tree.T.t -> Suffix_tree.T.node -> string
val height : Suffix_tree.T.t -> Suffix_tree.T.node -> int
val ext :
Suffix_tree.T.t -> Suffix_tree.T.node -> Suffix_tree.T.strid Lset.t
val children :
Suffix_tree.T.t -> Suffix_tree.T.node -> Suffix_tree.T.node Lset.t
val parent :
Suffix_tree.T.t -> Suffix_tree.T.node -> Suffix_tree.T.node option
val succ :
Suffix_tree.T.t -> Suffix_tree.T.node -> Suffix_tree.T.node option
val preds :
Suffix_tree.T.t -> Suffix_tree.T.node -> Suffix_tree.T.node Lset.t
val suffix :
Suffix_tree.T.t -> Suffix_tree.T.node -> Suffix_tree.T.strid * int
val find_node : Suffix_tree.T.t -> string -> Suffix_tree.T.node
val fold_tree :
Suffix_tree.T.t ->
('h -> Suffix_tree.T.node -> bool) ->
('h -> Suffix_tree.T.node -> 'h) ->
('s list -> 'h -> Suffix_tree.T.node -> 's) -> 'h -> 's
val path_restrictions :
Suffix_tree.T.t -> Suffix_tree.T.node -> Suffix_tree.T.node list
val path_extensions :
Suffix_tree.T.t -> Suffix_tree.T.node -> Suffix_tree.T.node list
val is_maximal : Suffix_tree.T.t -> Suffix_tree.T.node -> bool
val set_visible :
Suffix_tree.T.t -> Suffix_tree.T.node -> int * int -> unit
val max_restrictions :
Suffix_tree.T.t -> Suffix_tree.T.node -> Suffix_tree.T.node list
val max_extensions :
Suffix_tree.T.t ->
Suffix_tree.T.node option ->
Suffix_tree.T.node list * Suffix_tree.T.strid list
val string_restrictions :
Suffix_tree.T.t -> Suffix_tree.T.strid -> Suffix_tree.T.node list
type factor = Suffix_tree.T.node * string * Suffix_tree.T.node
val find_factor : Suffix_tree.T.t -> string -> Suffix_tree.T.factor
val suffixes :
Suffix_tree.T.t ->
Suffix_tree.T.factor -> (Suffix_tree.T.strid * int) list
val strings :
Suffix_tree.T.t -> Suffix_tree.T.factor -> Suffix_tree.T.strid Lset.t
type tree =
Node of string * int * int list * Suffix_tree.T.tree list
| Leaf of string * (Suffix_tree.T.strid * int)
val tree : Suffix_tree.T.t -> Suffix_tree.T.tree
end