Fractional package:ghc-lib-parser
Fractional numbers, supporting real division.
The Haskell Report defines no laws for
Fractional. However,
(+) and
(*) are customarily expected
to define a division ring and have the following properties:
Note that it
isn't customarily expected that a type instance of
Fractional implement a field. However, all instances in
base do.
Fractional Literal
Used (instead of Rational) to represent exactly the floating point
literal that we encountered in the user's source program. This allows
us to pretty-print exactly what the user wrote, which is important
e.g. for floating point numbers that can't represented as Doubles (we
used to via Double for pretty-printing). See also #2245. Note
[FractionalLit representation] in GHC.HsToCore.Match.Literal The
actual value then is: sign * fl_signi * (fl_exp_base^fl_exp) where
sign = if fl_neg then (-1) else 1
For example FL { fl_neg = True, fl_signi = 5.3, fl_exp = 4,
fl_exp_base = Base10 } denotes -5300
The integer should already be negated if it's negative.
The arguments should already be negated if they are negative.