let inter d1 d2 = match d1, d2 with | Real, _ -> d2 | _, Real -> d1 | Int, Int -> Int | Nonint, Nonint -> Nonint | Int, Nonint -> raise Empty | Nonint, Int -> raise Empty