# algebraic-classes: Conversions between algebraic classes and F-algebras.

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.

Versions [faq] | 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, 0.9, 0.9.1, 0.9.2, 0.9.3, 0.9.4 |
---|---|

Change log | CHANGELOG |

Dependencies | base (>=4.13 && <4.15), syb (==0.7.*), template-haskell (>=2.15 && <2.17) [details] |

License | BSD-3-Clause |

Author | Sjoerd Visscher |

Maintainer | sjoerd@w3future.com |

Revised | Revision 1 made by SjoerdVisscher at 2020-06-12T15:31:50Z |

Category | Data, Generics, Math |

Home page | https://github.com/sjoerdvisscher/algebraic-classes |

Bug tracker | https://github.com/sjoerdvisscher/algebraic-classes/issues |

Source repo | head: git clone git://github.com/sjoerdvisscher/algebraic-classes.git |

Uploaded | by SjoerdVisscher at 2020-01-06T14:29:17Z |

Distributions | NixOS:0.9.4 |

Downloads | 12764 total (12 in the last 30 days) |

Rating | (no votes yet) [estimated by Bayesian average] |

Your Rating | |

Status | Docs uploaded by user [build log] All reported builds failed as of 2020-01-06 [all 3 reports] |

## Downloads

- algebraic-classes-0.9.4.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.