# FiniteCategories: Finite categories and usual categorical constructions on them.

**This is a package candidate release!** Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

This package provides tools to create categories at the value level. This is different from the **Hask** category where types are objects in a category with infinite objects and arrows, here we construct categories where objects and arrows are arbitrary values so that we can change categories during runtime. Each category implements three functions following the category structure axioms : `ob`

which returns objects of the category, `ar`

which returns arrows between two objects of the category and `identity`

which returns the identity of an object. Thanks to theses functions, we can construct automatically all the usual constructions on the categories (limits and colimits, adjunctions, Yoneda embedding, etc.) Functors are different from usual `Functor`

typeclass, we store functors as mapping between objects and morphisms of two categories. This package is also different from the package `data-category`

because we can enumerate objects and arrows in a category. This allows us to construct limit, colimits, adjunctions, etc. automatically for arbitrary finite categories. On the other hand, we loose typecheck at compilation time which ensures that composition is sound in **Hask**, composition in our package might lead to an error raised during runtime. See the Readme file for installation help.

[Skip to Readme]

## Properties

Versions | 0.1.0.0, 0.1.0.0, 0.2.0.0 |
---|---|

Change log | CHANGELOG.md |

Dependencies | base (>=4.15.0.0 && <4.16), containers (>=0.6.4 && <0.7), directory (>=1.3.6 && <1.4), fgl (>=5.7.0 && <5.8), filepath (>=1.4.2 && <1.5), graphviz (>=2999.20.1 && <2999.21), process (>=1.6.11 && <1.7), random (>=1.2.1 && <1.3), text (>=1.2.4 && <1.3) [details] |

License | GPL-3.0-or-later |

Author | Guillaume Sabbagh |

Maintainer | guillaumesabbagh@protonmail.com |

Category | Data, Maths |

Home page | https://gitlab.utc.fr/gsabbagh/FiniteCategories |

Uploaded | by gsabbagh at 2022-03-22T10:32:43Z |

## Modules

[Index] [Quick Jump]

*Adjunction**Cat**CommaCategory**CompositionGraph**ConeCategory**Config**Currying**DiagonalFunctor**Diagram**ExportGraphViz**FiniteCategory**FunctorCategory**IO**Limit**OppositeCategory**ProductCategory**RandomCompositionGraph**RandomDiagram**Set**Subcategories**UsualCategories**Utils**YonedaEmbedding*

## Downloads

- FiniteCategories-0.1.0.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)

#### Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees