freer-indexed: Freer indexed monad for type-level resource-aware effectual operations.

[ bsd3, effects, library ] [ Propose Tags ]

This package defines "freer indexed monad". It combines the ideas of freer monad and indexed (aka parameterized) monad:

It allows defining indexed monadic computations as GADTs without making them into ad-hoc indexed monads, and instead use this data type to convert them into Functor, XApplicative and XMonad instances - see Control.XApplicative and Control.XMonad in this package.

This package does not (yet) allow composing these computations.

Semantically, these computations could represent type-level state changes of some associated resources, with the first index parameter meaning initial resource state prior to the computation, and the second index - the final resource state, making each computation an edge in the graph of resource state transitions.

For XApplicative/XMonad classes all class and additional functions have similar names to standard Applicative/Monad functions, following two naming conventions:


[Skip to Readme]
Versions [faq] 0.1.0.0
Change log CHANGELOG.md
Dependencies base (>=4.7 && <5) [details]
License BSD-3-Clause
Copyright 2020 Evgeny Poberezkin
Author Evgeny Poberezkin
Maintainer evgeny@poberezkin.com
Category Effects
Home page https://github.com/epoberezkin/freer-indexed#readme
Bug tracker https://github.com/epoberezkin/freer-indexed/issues
Source repo head: git clone https://github.com/epoberezkin/freer-indexed
Uploaded by epoberezkin at 2020-07-07T13:07:24Z
Distributions NixOS:0.1.0.0
Downloads 52 total (4 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2020-07-07 [all 1 reports]

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for freer-indexed-0.1.0.0

[back to package description]

freer-indexed

Freer indexed (parameterized) monad for type-level resource-aware effectual operations.

See Parameterized Extensible Effects and Session Types.

See docs on hackage.