proxy-kindness: A library for kind-polymorphic manipulation and inspection of Proxy values
It can be useful (especially with PolyKinds) to get the
"bare" type (e.g. Either) of some parameterized type
(e.g. Either Char Int). This library provides closed
classes that can strip and reapply type arguments, as well
as useful utility functions. Here are some examples:
Force Left 1 to be of type Either Float a using a
partially-applied Proxy.
>>>let t = (Left 1) `asApplied` (Proxy :: Proxy (Either Float))>>>:t tt :: Either Float a
Do the same, but illustrating type application with ap
>>>let t0 = (Left 1) `asApplied` ((Proxy :: Proxy Either) `ap` (Proxy :: Proxy Float))>>>:t t0t0 :: Either Float a
Force polymorphic undefined to some polymorphic Either
type, the base type of t defined above.
>>>let u = undefined `asApplied` (unappliedOf t)>>>:t uu :: Either a a1
Downloads
- proxy-kindness-0.1.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
| Versions [RSS] | 0.1 |
|---|---|
| Dependencies | base (>=4.6 && <4.7), tagged [details] |
| License | BSD-3-Clause |
| Author | Brandon Simmons |
| Maintainer | brandon.m.simmons@gmail.com |
| Category | Data |
| Home page | https://github.com/jberryman/proxy-kindness |
| Source repo | head: git clone https://github.com/jberryman/proxy-kindness.git -b master |
| Uploaded | by BrandonSimmons at 2013-11-15T02:19:41Z |
| Distributions | |
| Reverse Dependencies | 2 direct, 0 indirect [details] |
| Downloads | 1192 total (2 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating | |
| Status | Docs available [build log] Successful builds reported [all 1 reports] |