singletons-th: A framework for generating singleton types

[ bsd3, dependent-types, library ] [ Propose Tags ]

singletons-th defines Template Haskell functionality that allows promotion of term-level functions to type-level equivalents and singling functions to dependently typed equivalents. 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.

singletons-th generates code that relies on bleeding-edge GHC language extensions. As such, singletons-th only supports the latest major version of GHC (currently GHC 9.2). 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-base library uses singletons-th to define promoted and singled functions from the base library, including the Prelude.


[Skip to Readme]

Modules

[Index] [Quick Jump]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 3.0, 3.1, 3.1.1, 3.2, 3.3
Change log CHANGES.md
Dependencies base (>=4.16 && <4.17), containers (>=0.5), ghc-boot-th, mtl (>=2.2.1 && <2.3), singletons (==3.0.1), syb (>=0.4), template-haskell (>=2.18 && <2.19), th-desugar (>=1.13 && <1.14), th-orphans (>=0.13.11 && <0.14), transformers (>=0.5.2) [details]
License BSD-3-Clause
Author Richard Eisenberg <rae@cs.brynmawr.edu>, Jan Stolarek <jan.stolarek@p.lodz.pl>
Maintainer Ryan Scott <ryan.gl.scott@gmail.com>
Revised Revision 2 made by ryanglscott at 2022-05-20T23:23:23Z
Category Dependent Types
Home page http://www.github.com/goldfirere/singletons
Bug tracker https://github.com/goldfirere/singletons/issues
Source repo this: git clone https://github.com/goldfirere/singletons.git(tag v3.1)(singletons-th)
head: git clone https://github.com/goldfirere/singletons.git -b master(singletons-th)
Uploaded by ryanglscott at 2021-10-31T01:46:29Z
Distributions LTSHaskell:3.2, NixOS:3.2, Stackage:3.3
Reverse Dependencies 8 direct, 62 indirect [details]
Downloads 2825 total (112 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for singletons-th-3.1

[back to package description]

singletons-th

Hackage

singletons-th defines Template Haskell functionality that allows promotion of term-level functions to type-level equivalents and singling functions to dependently typed equivalents. This library was originally presented in Dependently Typed Programming with Singletons, published at the Haskell Symposium, 2012. See also the paper published at Haskell Symposium, 2014, which describes how promotion works in greater detail.

singletons-th generates code that relies on bleeding-edge GHC language extensions. As such, singletons-th only supports the latest major version of GHC (currently GHC 9.2). 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-base library uses singletons-th to define promoted and singled functions from the base library, including the Prelude.