sig
type 'a boolean =
And of 'a Bool.boolean list
| Or of 'a Bool.boolean list
| Not of 'a Bool.boolean
| Atom of 'a
| True
| False
val eval : ('a -> bool) -> 'a Bool.boolean -> bool
val iter : ('a -> unit) -> 'a Bool.boolean -> unit
val map : ('a -> 'b) -> 'a Bool.boolean -> 'b Bool.boolean
end