let mult s t =
  match s, t with
    | F, _ -> F
    | _, F -> F
    | Zero, _ -> Zero
    | _, Zero -> Zero
    | T, _ -> T
    | _, T -> T
    | PosPos -> Pos
    | PosNonneg -> Nonneg
    | PosNeg -> Neg
    | PosNonpos -> Nonpos
    | NegNeg -> Pos
    | NegPos -> Neg
    | NegNonpos -> Nonneg
    | NegNonneg -> Nonpos
    | NonposPos -> Nonpos
    | NonposNeg -> Nonneg
    | NonposNonpos -> Nonneg
    | NonposNonneg -> Nonpos
    | NonnegPos -> Nonneg
    | NonnegNeg -> Nonpos
    | NonnegNonneg -> Nonneg
    | NonnegNonpos -> Nonneg