type f =
| May_pos
| May_neg
| May_weak
| Inj
| Pos
| Neg
| Inv
val subset : t -> t -> bool
val set : f -> bool -> t -> t
val get_upper : t -> bool * bool
val get_lower : t -> bool * bool * bool * bool
val unknown_signature : injective:bool -> arity:int -> t list