type interval = BOT | INT of (int * int);; let less x y = match x,y with | BOT, _ -> true | _, BOT -> false | INT (a,b), INT (c,d) -> (a<=c)&&(b<=d);; let join x y = match x,y with | BOT, _ -> y | _, BOT -> x | INT (a,b), INT (c,d) -> INT (min a c,max b d);; let meet x y = match x,y with | BOT, _ -> BOT | _, BOT -> BOT | INT (a,b), INT (c,d) -> if (b BOT | INT (a,b) -> let a' = if a