This module supplies default instances for the real number and function classes
described in Data.Number.ER.RnToRm.
These classes form loosely coupled boundaries between abstraction layers.
Nevertheless, we usually have particular implementations in mind, as shown here.
To preserve the intended loose coupling, please use these definitions
only in functions that cannot infer from their input or output data which type of function enclosures
they should use. Eg a function to add 1 to an enclosure should have the type:
add1 :: (ERFnApprox box varid domra ranra fa) => fa -> fa
add1 f = f + 1
and not: add1 :: FAPWP -> FAPWP
|