name: flexible-defaults version: 0.0.0.2 x-revision: 1 stability: experimental cabal-version: >= 1.6 build-type: Simple author: James Cook maintainer: James Cook license: PublicDomain homepage: https://github.com/mokus0/flexible-defaults category: Code Generation, Template Haskell synopsis: Generate default function implementations for complex type classes. description: 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 v0.0.0.2: Nothing at all except setting 'buildable: False' under GHC 7.2.1. Technically it builds on 7.2.1, but it doesn't actually generate correct code due to http://hackage.haskell.org/trac/ghc/ticket/5410 which has been patched and will almost certainly be fixed in the next GHC release. AFAIK 7.2.1 is the only release where this bug actually caused problems. I'm sure it could be worked around, but it's a whole lot easier to just say "wait for 7.2.2/7.4". If anyone desperately needs this package under 7.2.1, let me know and I'll see what I can do. extra-source-files: examples/*.hs tested-with: GHC == 6.8.3, GHC == 6.10.4, GHC == 6.12.1, GHC == 6.12.3, GHC == 7.0.1, GHC == 7.0.2 source-repository head type: git location: https://github.com/mokus0/flexible-defaults.git Library hs-source-dirs: src ghc-options: -Wall exposed-modules: Language.Haskell.TH.FlexibleDefaults other-modules: Language.Haskell.TH.FlexibleDefaults.DSL Language.Haskell.TH.FlexibleDefaults.Solve build-depends: base >= 3 && <4.6, containers, template-haskell, transformers if impl(ghc == 7.2.1) buildable: False