monad-actions: Actions of monads on functors

[ control, lgpl, library, monads ] [ Propose Tags ] [ Report a vulnerability ]

This package defines classes for left and right actions of monads on functors. It also includes modules for using monad actions with qualified do notation.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0, 1.0.0.0, 2.0.0.0
Change log CHANGELOG.md
Dependencies base (>=4.20.2 && <4.21), constraints (>=0.14.4 && <0.15), free (>=5.2 && <5.3), kan-extensions (>=5.2.8 && <5.3), mmorph (>=1.2.2 && <1.3), mtl (>=2.3.1 && <2.4), template-haskell (>=2.22.0 && <2.23), transformers (>=0.6.1 && <0.7) [details]
License LGPL-2.0-or-later
Author noiioiu
Maintainer noiioiu@cocaine.ninja
Uploaded by noiioiu at 2026-02-22T20:58:43Z
Category Control, Monads
Home page https://codeberg.org/noiioiu/monad-actions
Source repo head: git clone ssh://git@codeberg.org/noiioiu/monad-actions.git
Distributions
Downloads 12 total (7 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for monad-actions-2.0.0.0

[back to package description]

Left or right actions of a monad on a functor.

See this blog post by Dan Marsden for an introduction to monad actions.

This package provides two implementations of monad actions. The simpler one uses the LeftModule, RightModule, and BiModule classes defined in Control.Monad.Action, and can be used with the QualifiedDo extension by qualifying the do blocks with either Control.Monad.Action.Right or Control.Monad.Action.Left. However, it uses incoherent instances. The second implementation, designed to avoid incoherent and overlapping instances, is defined in Control.Monad.Action.Records, and uses the LeftAction, RightAtion, and BiAction types. It is meant to be used with RecordWildCards and RebindableSyntax and/or OverloadedRecordDot.