named-sop: Dependently-typed sums and products, tagged by field name
Sums and Maps (products) indexed by a typelevel map of their field (or constructor) names and types. They can be combined and split again; their typelevel map is sorted to ensure that the end result is independent of the order you combine it in.
Data.NamedSOP.Generic contains functions for automatically converting between types with a Generic instance and named sums of products:
>>> data A = C { a :: Int, b :: Bool }
>>> | D Int Bool deriving (Generic)
>>> :t genSum (C 3 True)
NSum
'[ "_C" ':-> NMap '[ "a" ':-> Int, "b" ':-> Bool],
"_D" ':-> NMap '[ "_1" ':-> Int, "_2" ':-> Bool]]
[Skip to Readme]
Modules
- Data
- NamedSOP
- Data.NamedSOP.Generic
- Data.NamedSOP.Map
- Data.NamedSOP.Sum
- Data.NamedSOP.Type
- NamedSOP
Downloads
- named-sop-0.3.0.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
| Versions [RSS] | 0.1.0.0, 0.1.0.1, 0.2.0.0, 0.3.0.0 |
|---|---|
| Change log | CHANGELOG.md |
| Dependencies | base (>=4.13.0.0 && <4.14), singletons (>=2.6 && <2.7), text (>=1.2.3.1 && <1.3) [details] |
| Tested with | ghc ==8.8.1 |
| License | MIT |
| Author | Sam Schweigel |
| Maintainer | Sam Schweigel <s.schweigel@gmail.com> |
| Category | Data |
| Home page | https://github.com/sjsch/named-sop |
| Source repo | head: git clone https://github.com/sjsch/named-sop |
| Uploaded | by sjsch at 2020-02-20T03:02:24Z |
| Distributions | |
| Downloads | 1583 total (20 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating | |
| Status | Docs not available [build log] All reported builds failed as of 2020-02-20 [all 3 reports] |