type 'a expr = False | True | Or of 'a * 'a | And of 'a * 'a | Atom of ([ `Left |`Right | `Epsilon ] * bool * State.t) | Pred of Tree.Predicate.t type t val hash : t -> int val uid : t -> Uid.t val equal : t -> t -> bool val expr : t -> t expr val st : t -> StateSet.t * StateSet.t val compare : t -> t -> int val size : t -> int val print : Format.formatter -> t -> unit val is_true : t -> bool val is_false : t -> bool val true_ : t val false_ : t val atom_ : [ `Left | `Right | `Epsilon ] -> bool -> StateSet.elt -> t val pred_ : Tree.Predicate.t -> t val not_ : t -> t val or_ : t -> t -> t val and_ : t -> t -> t val of_bool : bool -> t val or_pred : t -> t -> t val and_pred : t -> t -> t module Infix : sig val ( +| ) : t -> t -> t val ( *& ) : t -> t -> t val ( *+ ) : [ `Left | `Right | `Epsilon ] -> StateSet.elt -> t val ( *- ) : [ `Left | `Right | `Epsilon ] -> StateSet.elt -> t end