The algebraic-classes package

[ Tags: bsd3, data, generics, library, math ] [ Propose Tags ]

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:

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.


Versions 0, 0.1, 0.2, 0.2.1, 0.3, 0.3.1, 0.3.2, 0.4, 0.5, 0.5.1, 0.5.2, 0.6, 0.7, 0.7.1, 0.8
Change log CHANGELOG
Dependencies base (==4.10.*), syb (==0.7.*), template-haskell (==2.12.*) [details]
License BSD3
Author Sjoerd Visscher
Category Data, Generics, Math
Home page
Bug tracker
Source repo head: git clone git://
Uploaded Mon Jul 24 18:13:22 UTC 2017 by SjoerdVisscher
Distributions NixOS:0.8
Downloads 5145 total (113 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2017-07-24 [all 3 reports]
Hackage Matrix CI


  • Data
    • Data.Algebra
      • Data.Algebra.Internal
      • Data.Algebra.TH


Maintainer's Corner

For package maintainers and hackage trustees