| Portability | generalized newtype deriving |
|---|---|
| Stability | experimental |
| Maintainer | Edward Kmett <ekmett@gmail.com> |
Data.Proxy
Contents
Description
Tagged values
Some times you need to change the tag you have lying around.
Idiomatic usage is to make a new combinator for the relationship
between the tags that you want to enforce, and define that
combinator using retag.
data Succ n reproxySucc :: Proxy n -> Proxy (Succ n) reproxySucc = reproxy
asProxyTypeOf :: a -> Proxy a -> a
asProxyTypeOf is a type-restricted version of const.
It is usually used as an infix operator, and its typing forces its first
argument (which is usually overloaded) to have the same type as the tag
of the second.