The constrained-normal package
The package provides normal forms for monads and related structures, similarly to the Operational package. The difference is that we parameterise the normal forms on a constraint, and apply that constraint to all existential types within the normal form. This allows monad (and other) instances to be generated for underlying types that require constraints on their return-like and bind-like operations, e.g. Set.
This is documented in the following paper:
The Constrained-Monad Problem. Neil Sculthorpe and Jan Bracker and George Giorgidze and Andy Gill. International Conference on Functional Programming, pages 287-298. ACM, 2013. http://dx.doi.org/10.1145/2500365.2500602
The functionality exposed by this library is also used internally by the Set-Monad and RMonad packages.
|Versions||1.0.0, 1.0.1, 1.0.2|
|Dependencies||base (>=4.5 && <5) [details]|
|Copyright||(c) 2013 The University of Kansas|
|Maintainer||Neil Sculthorpe <firstname.lastname@example.org>|
|Uploaded||Mon Jun 9 14:46:00 UTC 2014 by NeilSculthorpe|
|Downloads||824 total (11 in the last 30 days)|
|Status||Docs available [build log]
Successful builds reported [all 1 reports]
For package maintainers and hackage trustees