1
1
mirror of https://github.com/coot/free-category.git synced 2024-08-16 09:30:46 +03:00
Free categories, free arrows and free categories with monadic actions
Go to file
2021-03-16 08:55:04 +01:00
.github/workflows github-cachix: added iohk cache 2021-03-16 08:55:04 +01:00
bench Removed Cat type 2019-12-05 02:20:14 +01:00
examples Tweaks 2020-10-19 18:39:42 +02:00
nix Updated nix & cabal files 2020-10-18 17:07:13 +02:00
src/Control Add runEffCat (#33) 2020-10-19 20:11:52 +02:00
test Make tests compile with ghc-8.10.2 2020-10-18 17:07:13 +02:00
.gitignore git-ignore: ignore .hie directories 2020-07-26 11:30:56 +02:00
.travis.yml Efficient representation of a free category (#5) 2019-08-31 08:12:21 +00:00
cabal.project github-cachix: added iohk cache 2021-03-16 08:55:04 +01:00
ChangeLog.md Updated cabal files and ChangeLog.md file 2020-07-22 19:27:12 +02:00
default.nix Updated nix & cabal files 2020-10-18 17:07:13 +02:00
free-category.cabal Updated nix & cabal files 2020-10-18 17:07:13 +02:00
LICENSE Initial commit 2018-08-26 19:12:12 +02:00
README.md Updated README file 2020-10-19 21:31:35 +02:00

Free Category

Maintainer: coot Haskell/CI

This package contains efficient implementations of free categories. There are various representations available:

  • real-time queues (C. Okasaki 'Pure Functional Data Structures')
  • type aligned lists
  • continuation passing style (Church encoding)

Free arrows and free Kleisli categories are also included.

Free categories are useful to model state machines in a simple yet type safe manner. For that purpose Kleisli categories are a very useful target which allows to include monadic computations. This package contains a useful generalisation of Kleisli categories captured by EffectCategory class (categories with effects), and a (free) transformer which lifts a category to a category with effects.

Benchmarks

Check performance characteristics of various representations:

Resources