sig
type 'n component = Component of 'n * 'n Wto.partition | Node of 'n
and 'n partition = 'n Wto.component list
val flatten : 'n Wto.partition -> 'n list
val fold_heads : ('a -> 'n -> 'a) -> 'a -> 'n Wto.partition -> 'a
module Make :
functor
(Node : sig
type t
val equal : Wto.Make.t -> Wto.Make.t -> bool
val hash : Wto.Make.t -> int
val pretty : Stdlib.Format.formatter -> Wto.Make.t -> unit
end)
->
sig
type pref = Node.t -> Node.t -> int
val partition :
pref:Wto.Make.pref ->
init:Node.t ->
succs:(Node.t -> Node.t list) -> Node.t Wto.partition
val pretty_partition :
Stdlib.Format.formatter -> Node.t Wto.partition -> unit
val pretty_component :
Stdlib.Format.formatter -> Node.t Wto.component -> unit
val equal_component :
Node.t Wto.component -> Node.t Wto.component -> bool
val equal_partition :
Node.t Wto.partition -> Node.t Wto.partition -> bool
end
end