Skip to content

Instantly share code, notes, and snippets.

@fatho
fatho / gist:6661270
Last active December 23, 2015 16:19 — forked from zrho/gist:6660923
import Control.Monad.IO.Class
newtype SchadeT m a = SchadeT { runSchade :: m a }
type SchadeM = SchadeT IO
instance Monad m => Monad (SchadeT m) where
return x = SchadeT $ return x
m >>= f = SchadeT $ runSchade m >>= (runSchade . f)
schade :: MonadIO m => SchadeT m ()