cabal-version: 2.2 name: impl homepage: https://github.com/exordium/impl#readme version: 0.2.0.0 category: Development, Template Haskell synopsis: Framework for defaulting superclasses description: This small but extensible framework facilitates defining complex defaulting rules that are not handled by DefaultSignatures, and reducing the overhead of giving instances to new datatypes by generating superclasses. One reason we might want this is when a superclass wants to be given a default by two different subclasses (ex: Bifunctor and Profunctor both could generate Functor instances). See the example internal library for how to implement instances of Impl. Impl is most valuable when instantiating deep (or even undecidably recursive) typeclass hierarchies for multiple new datatypes, which is most common in client code. stability: cursed bug-reports: https://github.com/exordium/impl/issues author: Dai maintainer: daig@sodality.cc copyright: 2018 Sodality license: MIT source-repository head type: git location: https://github.com/exordium/impl common x default-language: Haskell2010 default-extensions: TypeFamilies, ViewPatterns, DataKinds, TypeOperators, AllowAmbiguousTypes, TypeApplications, OverloadedLabels, TemplateHaskell, PolyKinds, PatternSynonyms, LambdaCase build-depends: base ^>= 4.12.0.0 library import: x exposed-modules: Impl other-modules: Impl.Utils build-depends: template-haskell ^>= 2.14.0.0 , named ^>= 0.2.0.0 , containers ^>= 0.6.0.1 Flag DumpExample Description: Show generated TH in example Default: False Manual: True library example import: x hs-source-dirs: example exposed-modules: Monad.Impl, Monad.Foo if flag(DumpExample) ghc-options: -ddump-splices -dsuppress-uniques build-depends: impl