packages feed

algebraic-classes-0.9.4: algebraic-classes.cabal

name:                algebraic-classes
version:             0.9.4
synopsis:            Conversions between algebraic classes and F-algebras.
description:         Algebraic classes are type classes where all the methods return a value of the same type, which is also the class parameter.
                     Examples from @base@ are @Num@ and @Monoid@.
                     .
                     F-algebras are functions @f a -> a@, where the functor @f@ is called the signature, and the type @a@ the carrier.
                     .
                     This package relates these 2 concepts, and can create conversions between the two using Template Haskell.
                     More specifically, it can generate:
                     .
                     * signatures from algebraic classes
                     .
                     * instances of algebraic classes from F-algebras.
                     .
                     This is useful because type classes are more commonly used in Haskell than F-algebras, but F-algebras are
                     easier to work with, because they are just functions.
homepage:            https://github.com/sjoerdvisscher/algebraic-classes
bug-reports:         https://github.com/sjoerdvisscher/algebraic-classes/issues
license:             BSD3
license-file:        LICENSE
author:              Sjoerd Visscher
maintainer:          sjoerd@w3future.com
category:            Data, Generics, Math
build-type:          Simple
cabal-version:       >=1.8

extra-source-files:
  examples/*.hs
  CHANGELOG

library
  exposed-modules:
    Data.Algebra
    Data.Algebra.TH
    Data.Algebra.Internal

  build-depends:
      base >= 4.10 && < 4.14
    , syb == 0.7.*
    , template-haskell >= 2.12 && < 2.16

source-repository head
  type:     git
  location: git://github.com/sjoerdvisscher/algebraic-classes.git