1
1
mirror of https://github.com/coot/free-category.git synced 2024-11-23 09:55:43 +03:00
Free categories, free arrows and free categories with monadic actions
Go to file
Marcin Szamotulski 20d61b2355
Efficient representation of a free category (#5)
* Efficient representation of free category

Using type aligned real time queues (Okasaki, 'Purely Functional Data
Structures') to represent catanable type allign lists (free categories).

Composition is O(1) and right fold is O(n), where n is number of
transitions.

* Bump version to 0.0.3

Make it compile on ghc802.

* Updated CI configuration
2019-08-31 08:12:21 +00:00
.circleci Efficient representation of a free category (#5) 2019-08-31 08:12:21 +00:00
examples Stylistic changes 2019-08-24 10:28:08 +02:00
nix Efficient representation of a free category (#5) 2019-08-31 08:12:21 +00:00
src/Control Efficient representation of a free category (#5) 2019-08-31 08:12:21 +00:00
.travis.yml Efficient representation of a free category (#5) 2019-08-31 08:12:21 +00:00
cabal.project Lifting (#2) 2018-12-10 19:59:39 +01:00
ChangeLog.md Updated README.md and ChangeLog.md 2019-01-26 11:00:56 +01:00
default.nix Efficient representation of a free category (#5) 2019-08-31 08:12:21 +00:00
free-category.cabal Efficient representation of a free category (#5) 2019-08-31 08:12:21 +00:00
LICENSE Initial commit 2018-08-26 19:12:12 +02:00
README.md Efficient representation of a free category (#5) 2019-08-31 08:12:21 +00:00
shell.nix Efficient representation of a free category (#5) 2019-08-31 08:12:21 +00:00

Free Category

Maintainer: coot CircleCI

This package contains efficient free category presentations.

Free categories are useful to model state machines in a simple yet type safe way and for that purpose Kleisli categroies are a very useful target which allows to include monadic computations. This packge contains a useful generalisation of Kliesli categories captured by EffCategory class (effectful categories), and a (free) transformer which lifts a category to an effectful one.

Some examples