A redefinition of the Prelude's Enum class in order to render it safe.

LTS Haskell 8.6:
Stackage Nightly 2017-03-29:
Latest on Hackage:
BSD3 licensed by wren gayle romano
Maintained by

Module documentation for


This is a very simple package and should be easy to install. You
should be able to use any of the following standard methods to
install it.

-- With cabal-install and without the source:
$> cabal install prelude-safeenum

-- With cabal-install and with the source already:
$> cd prelude-safeenum
$> cabal install

-- Without cabal-install, but with the source already:
$> cd prelude-safeenum
$> runhaskell Setup.hs configure --user
$> runhaskell Setup.hs build
$> runhaskell Setup.hs test
$> runhaskell Setup.hs haddock --hyperlink-source
$> runhaskell Setup.hs copy
$> runhaskell Setup.hs register

The test step is optional and currently does nothing. The Haddock
step is also optional.


An attempt has been made to keep this library portable; however,
it does rely on a few language extensions. All the required language
extensions are:

MagicHash -- only for GHC
Trustworthy -- only for GHC >= 7.1

The GeneralizedNewtypeDeriving extension is used for brevity in
Data.Number.CalkinWilf. If you'd like to use this package with a
compiler that does not support that extension, contact the maintainer
and it can be removed.

This package is only "Trustworthy" rather than "Safe" for two
reasons: (1) Data.Number.CalkinWilf uses GeneralizedNewtypeDeriving,
and (2) Prelude.SafeEnum imports GHC.Exts for build/foldr fusion
and for the Char instances.

----------------------------------------------------------- fin.

Changes (2015-05-30):
0.1.1 (2013.03.07):
- Prelude.SafeEnum: corrected the Char instance for GHC 7.8 (2013.06.01):
- Documentation changes.
0.1.0 (2013.05.29):
- forked from the (unpublished) data-fin package.
- made things Trustworthy, and some other cleanup.
Depends on:
Used by 1 package:
comments powered byDisqus