sig
type test
val tests : OASISExpr.test list
val string_of_test : OASISExpr.test -> string
val test_of_string : string -> OASISExpr.test
type flag = string
type t =
EBool of bool
| ENot of OASISExpr.t
| EAnd of OASISExpr.t * OASISExpr.t
| EOr of OASISExpr.t * OASISExpr.t
| EFlag of OASISExpr.flag
| ETest of OASISExpr.test * string
type 'a choices = (OASISExpr.t * 'a) list
val eval : (string -> string) -> OASISExpr.t -> bool
val choose :
?printer:('a -> string) ->
?name:string -> (string -> string) -> 'a OASISExpr.choices -> 'a
val check : OASISExpr.flag list -> OASISExpr.t -> unit
val reduce : OASISExpr.t -> OASISExpr.t
val reduce_choices : (OASISExpr.t * 'a) list -> (OASISExpr.t * 'a) list
val odn_of_t : OASISExpr.t -> ODN.t
val odn_of_choices : ('a -> ODN.t) -> 'a OASISExpr.choices -> ODN.t
end