According to the definition of the class Bounded, minBound and maxBound
have types
minBound :: Bounded a => a
maxBound :: Bounded a => a
Suppose I define the function
f (minBound, maxBound) = (maxBound, minBound)
shouldn't its type be
f :: (Bounded a, Bounded b, Bounded c, Bounded d) => (a,b) -> (c,d) ?
hugs gives me the following answer
Main> :t f
f :: (a,b) -> (b,a)
jbb
