This also applies to user defined data types with only one constructor. In Haskell, patterns can be made irrefutable by adding a "~" as inf ~(x,y) = 1.If tuple constructor functions were strict in all their arguments then (bottom,x) = (x,bottom) = bottom for any x so matching a...