singletons-base-3.2: A promoted and singled version of the base library
singletons-base
uses singletons-th
to define promoted and singled
functions from the base
library, including the Prelude. This library was
originally presented in Dependently Typed Programming with Singletons,
published at the Haskell Symposium, 2012.
(https://richarde.dev/papers/2012/singletons/paper.pdf)
See also the paper published at Haskell Symposium, 2014, which describes
how promotion works in greater detail:
https://richarde.dev/papers/2014/promotion/promotion.pdf.
WARNING: singletons-base
defines orphan instances for Sing
, SingKind
,
etc. for common types such as Bool
, []
, Maybe
, etc. If you define
instances of these types in your code, you will likely not be able to use
that code with singletons-base
.
singletons-base
uses code that relies on bleeding-edge GHC language
extensions. As such, singletons-base
only supports the latest major version
of GHC (currently GHC 9.6). For more information,
consult the singletons
README
.
You may also be interested in the following related libraries:
- The
singletons
library is a small, foundational library that defines basic singleton-related types and definitions. - The
singletons-th
library defines Template Haskell functionality that allows promotion of term-level functions to type-level equivalents and singling functions to dependently typed equivalents.
- Control
- Data
- Bool
- Either
- Eq
- Foldable
- Function
- Functor
- List
- Maybe
- Monoid
- Ord
- Proxy
- Semigroup
- Data.Singletons
- String
- Traversable
- Tuple
- Void
- GHC
- TypeLits
- Prelude
- Text