16 lines
620 B
Haskell
16 lines
620 B
Haskell
{-# LANGUAGE MultiParamTypeClasses #-}
|
|
{-# LANGUAGE FunctionalDependencies #-}
|
|
{-# LANGUAGE FlexibleInstances #-}
|
|
module Yesod.Core.Trans.Class (MonadLift (..)) where
|
|
|
|
import Control.Monad.Trans.Class
|
|
|
|
-- | The standard @MonadTrans@ class only allows lifting for monad
|
|
-- transformers. While @GHandler@ and @GWidget@ should allow lifting, their
|
|
-- types do not express that they actually are transformers. This replacement
|
|
-- class accounts for this.
|
|
class MonadLift base m | m -> base where
|
|
lift :: base a -> m a
|
|
instance (Monad m, MonadTrans t) => MonadLift m (t m) where
|
|
lift = Control.Monad.Trans.Class.lift
|