Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sjoerdvisscher/algebraic-classes

Conversions between algebraic classes and F-algebras.
https://github.com/sjoerdvisscher/algebraic-classes

algebraic algebras conversion generics haskell signature

Last synced: 22 days ago
JSON representation

Conversions between algebraic classes and F-algebras.

Awesome Lists containing this project

README

        

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.