@hackage do-notation0.1.0.2
Generalize do-notation to work on monads and indexed monads simultaneously.
Categories
License
BSD-3-Clause
Maintainer
sandy@sandymaguire.me
Links
Versions
Installation
Dependencies (2)
Dependents (2)
@hackage/acme-everything, @hackage/hout
do-notation
| Hackage
Dedication
I've just locked an open door. Strange, yet symbolically compelling.
Manny Calavera, Grim Fandango
Overview
Have you ever wanted to manage siiiick invariants with indexed monads without
giving up your regular monads in the process? do-notation lets you do this
with a bunch of type jiggery-pokery behind the scenes.
It also provides the Ix m indexed monad which is a free construction over a
regular monad m. Cool.
Usage
{-# LANGUAGE RebindableSyntax #-}
import Language.Haskell.DoNotation
import Prelude hiding (Monad (..), pure)
Limitations
The implementation doesn't play very nicely with do-blocks bound via let.
Thanks
Huge shout-outs to Csongor Kiss for very patiently walking me through the incoherent instance machinery necessary to make this all work.