Many numbers are not Bounded yet, even though they can
represent arbitrarily large values, they are not necessarily
able to represent transfinite values such as infinity itself.
This class is for types which are capable of representing such
values. Notably, this class does not require the type to be
Fractional nor Floating since integral types could also have
representations for transfinite values.
In particular, this class extends the Ord projection to have
a maximum value infinity and a minimum value negativeInfinity,
as well as an exceptional value notANumber. All the natural
laws regarding infinity and negativeInfinity should pertain.
Additionally, infinity  infinity should return notANumber
(as should 0/0 and infinity/infinity if the type is
Fractional). Any operations on notANumber will also return
notANumber, and any equality or ordering comparison on
notANumber must return False.
Minimum complete definition is infinity, isInfinite, and
isNaN.
