The constrained-normal package

[ Tags: bsd3, control, library ] [ Propose Tags ]

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.

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]
License BSD3
Copyright (c) 2013 The University of Kansas
Author Neil Sculthorpe
Maintainer Neil Sculthorpe <>
Category Control
Home page
Uploaded Mon Jun 9 14:46:00 UTC 2014 by NeilSculthorpe
Distributions NixOS:1.0.2
Downloads 881 total (5 in the last 30 days)
Rating 0.0 (0 ratings) [clear rating]
  • λ
  • λ
  • λ
Status Docs available [build log]
Successful builds reported [all 1 reports]
Hackage Matrix CI




Maintainer's Corner

For package maintainers and hackage trustees