defun
Version 0.1 revision 0 uploaded by phadej.
Package meta
- Synopsis
- Defunctionalization helpers
- Description
The package
defun
provides defunctionalization helpers, most importantly type family DeFun.Core.App allowing to write higher-order type families. Thesingletons
package also has its own type familyApply
, but the machinery is tied to theSing
/ singletons.Once
UnsaturatedTypeFamilies
extension is implemented in GHC (Proposal 242), this package will become more or less obsolete.In particular, the
Lam
counterpartSLambda
is specialized toSing
arguments. Thedefun
'sLam
is however fully general, so you can use your own singletons or (importantly) singleton-like arguments.The package provides few defunctionalized functions, and their term-level reflections using
SBool
andNP
data types fromsingletons-bool
andsop-core
packages respectively.This is the "batteries-included" variant with "many" dependencies; see the
defun-core
package and otherdefun-*
dependencies if you need a more limited dependency footprint.The first-class-families package has slightly different design, in particular it doesn't reuse existing (nor define) own standalone type families. In
first-class-families
everything has to be evaluated via itsEval
type family (which job is similar toApp
), butdefun
only makes higher-order type families look different. In short, ergonomics are a bit different.- Author
- Oleg Grenrus <oleg.grenrus@iki.fi>
- Bug reports
- n/a
- Category
- Data
- Copyright
- n/a
- Homepage
- n/a
- Maintainer
- Oleg Grenrus <oleg.grenrus@iki.fi>
- Package URL
- n/a
- Stability
- n/a