Binary fixed-point arithmetic.
This package defines a type for binary fixed-precision arithmetic. The main differences between this and Data.Fixed are that this is binary fixed-point and it's polymorphic in the underlying representation. When is this more appropriate than floating point? You'll mainly want to use this when you need to be able to represent fractional values within a bounded range. Fixed-point numbers have the advantage of uniformity in these cases. On the downside, you lose precision relative to floating point numbers as you approach zero, and you lose the ability to express very large (but imprecise) values that floating point can express. On some architectures, fixed-point arithmetic might be faster than floating-point arithmetic, but this is probably not the case on x86.