{-# LANGUAGE UndecidableInstances #-}
module Blucontrol.Monad.Control (
MonadControl (..)
) where
import Control.Monad.Trans.Control
import Data.Kind
class MonadBaseControl IO m => MonadControl m where
type ControlConstraint m a :: Constraint
doInbetween :: ControlConstraint m a
=> a
-> m ()
instance MonadControl IO where
type ControlConstraint IO _ = ()
doInbetween :: forall a. ControlConstraint IO a => a -> IO ()
doInbetween a
_ = () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()