sig
type t = Condition.event list * Condition.guard list
and event = string
and guard = Expr.t
type env = (string * Expr.value) list
exception Illegal_guard_expr of Expr.t
val vars_of : Condition.t -> Expr.VarSet.t
val events_of : Condition.t -> Expr.VarSet.t
val eval_guard : Condition.env -> Condition.guard -> bool
val eval_guards : Condition.env -> Condition.guard list -> bool
val rename : (string -> string) -> Condition.t -> Condition.t
val subst : Eval.env -> Condition.t -> Condition.t
val string_of_guard : Condition.guard -> string
val to_string : Condition.t -> string
end