@hackage constrained-normal1.0.2

Normalised Deep Embeddings for Constrained Type-Class Instances

  • Categories

    • License

      BSD-3-Clause

    • Maintainer

      Neil Sculthorpe <neil.sculthorpe@ntu.ac.uk>

    • Versions

    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.