{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE RebindableSyntax #-} module Control.Dsl.Monadic where import Control.Dsl.Dsl import qualified Prelude newtype Monadic m r a = Monadic (m a) instance Prelude.Monad m => Dsl (Monadic m) (m b) a where cpsApply (Monadic k) = (Prelude.>>=) k