val ( ?< ) : State.t -> State.t
val ( >< ) : State.t -> TagSet.t * bool -> State.t*(TagSet.t*bool*bool)
val ( ><@ ) : State.t -> TagSet.t * bool -> State.t*(TagSet.t*bool*bool)
- val ( >=> ) : State.t *(TagSet.t*bool*bool) -> Formula.t -> (State.t*TagSet.t*t)
+ val ( >=> ) : State.t * (TagSet.t*bool*bool) -> Formula.t -> (State.t*TagSet.t*t)
end
val print : Format.formatter -> t -> unit
end
-module SetTagKey : Hashtbl.HashedType with type t = StateSet.t*Tag.t
-
-module CachedTransTable : Hashtbl.S with type key = SetTagKey.t
-
-module Formlist : Ptset.S with type elt = Transition.t
+module Formlist : Hlist.S with type elt = Transition.t
type 'a t = {
id : int;
module type ResultSet =
sig
type t
+ type elt = [`Tree] Tree.node
val empty : t
- val cons : Tree.t -> t -> t
+ val cons : elt -> t -> t
val concat : t -> t -> t
- val iter : (Tree.t -> unit) -> t -> unit
- val fold : (Tree.t -> 'a -> 'a) -> t -> 'a -> 'a
- val map : (Tree.t -> Tree.t) -> t -> t
+ val iter : (elt -> unit) -> t -> unit
+ val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
+ val map : (elt -> elt) -> t -> t
val length : t -> int
+ val merge : (bool*bool*bool*bool)-> elt -> t -> t -> t
end
module IdSet : ResultSet
+module GResult : ResultSet
val top_down_count : 'a t -> Tree.t -> int
-val top_down : 'a t -> Tree.t -> IdSet.t
+val top_down : 'a t -> Tree.t -> GResult.t
val bottom_up_count :
'a t -> Tree.t -> [> `CONTAINS of 'b | `TAG of Tag.t ] -> int