flexible-defaults: Generate default function implementations for complex type classes.

[ code-generation, library, public-domain, template-haskell ] [ Propose Tags ]

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.

Changes in 0.0.1.0: Updated for Template Haskell changes in GHC 7.6

Changes in v0.0.0.3: Added a hack to fix under GHC 7.2.

Changes in v0.0.0.2: Nothing at all except setting 'buildable: False' under GHC 7.2.1.

Modules

[Index]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

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 && <4.9), containers, template-haskell, th-extras, transformers [details]
License LicenseRef-PublicDomain
Author James Cook <mokus@deepbondi.net>
Maintainer James Cook <mokus@deepbondi.net>
Revised Revision 1 made by PeterSimons at 2019-10-27T15:14:52Z
Category Code Generation, Template Haskell
Home page https://github.com/mokus0/flexible-defaults
Source repo head: git clone https://github.com/mokus0/flexible-defaults.git
Uploaded by JamesCook at 2013-03-04T17:00:44Z
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 13811 total (42 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]