let disjoint s t =
match s, t with
| F, _ -> true
| _, F -> true
| Zero, (Neg | Pos) -> true
| Neg, (Zero | Pos | Nonneg) -> true
| Pos, (Zero | Neg | Nonpos) -> true
| Nonneg, Neg -> true
| Nonpos, Pos -> true
| _ -> false