This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.
Prelude.EDSL exports a small subset of the Prelude:
some standard types and classes plus a small number of
convenience functions.
The motivation for this module is that it is common for
deeply embedded domain-specific languages (EDSLs) to
redefine identifiers from the Prelude, so EDSL users must
hide the Prelude in their programs. However, there are
certain useful things from the Prelude that are usually
not redefined -- function composition being one example --
so it becomes quite awkward to have to hide everything from
the Prelude.
The reason for exporting e.g the Num class but not Ord
is that it is possible to give an instance for deep
embeddings of the former but not the latter. For example,
assuming Exp is the type of a deep embedding, we can have
(+) :: Exp -> Exp -> Exp
but not
(<) :: Exp -> Exp -> Exp
(because (<) has a Bool result, regardless of the type
of the arguments).