flexible-defaults: Generate default function implementations for complex type classes.
Template Haskell code to implement default implementations for type-class functions based on which functions are already implemented. Currently extremely crude but still fairly effective.
When defining a type class with many functions, each of which can be implemented based on arbitrary subsets of the others, the standard default-implementation concept breaks down quite badly. This library provides a system by which more complex rules can be described for choosing default implementations based on which ones the user supplies. These implementations can additionally be given "suitability scores", so that when multiple possible choices could be made, the library can choose the "best" one.
Downloads
- flexible-defaults-0.0.3.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.0.0.1, 0.0.0.2, 0.0.0.3, 0.0.1.0, 0.0.1.1, 0.0.1.2, 0.0.2, 0.0.3 |
---|---|
Dependencies | base (>=3 && <5), containers, semigroups (>=0.18 && <0.19), template-haskell, th-extras, transformers [details] |
Tested with | ghc ==7.0.4, ghc ==7.2.2, ghc ==7.4.2, ghc ==7.6.3, ghc ==7.8.4, ghc ==7.10.3, ghc ==8.0.2, ghc ==8.2.2, ghc ==8.4.4, ghc ==8.6.5, ghc ==8.8.1 |
License | LicenseRef-PublicDomain |
Author | James Cook <mokus@deepbondi.net> |
Maintainer | Peter Simons <simons@cryp.to> |
Category | Code Generation, Template Haskell |
Home page | https://github.com/peti/flexible-defaults |
Source repo | head: git clone https://github.com/peti/flexible-defaults.git |
Uploaded | by PeterSimons at 2019-10-27T15:43:37Z |
Distributions | Arch:0.0.3, Debian:0.0.3, LTSHaskell:0.0.3, NixOS:0.0.3, Stackage:0.0.3 |
Reverse Dependencies | 2 direct, 66 indirect [details] |
Downloads | 14064 total (29 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs available [build log] Last success reported on 2019-10-27 [all 1 reports] |