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