isovector/do-notation

deprecated in favor of -XQualifiedDo

Haskell

41

11 commits

updated May 8, 2021

See the code

README

do-notation

Build Status | 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.

Contributors

isovector

10 commits

cdepillabout

1 commits

isovector/do-notation

deprecated in favor of -XQualifiedDo

Haskell

41

11 commits

updated May 8, 2021

See the code

README

do-notation

Build Status | 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.

Contributors

isovector

10 commits

cdepillabout

1 commits

Languages

Haskell

80.6%

Shell

19.4%