haskoon-0.3.1.1: src/Factis/Haskoon/WebIdT.hs
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module Factis.Haskoon.WebIdT (WebTrans(..), WebIdT(..)) where
----------------------------------------
-- STDLIB
----------------------------------------
import Control.Monad.Trans (MonadTrans(..), MonadIO(..))
----------------------------------------
-- LOCAL
----------------------------------------
import Factis.Haskoon.WebTrans (WebTrans(..))
newtype WebIdT m a = WebIdT { runWebIdT :: m a } deriving (Monad)
instance MonadTrans WebIdT where
lift = WebIdT
instance MonadIO m => MonadIO (WebIdT m) where
liftIO = WebIdT . liftIO
instance WebTrans WebIdT where
liftWeb = WebIdT
liftWebFun f cont = WebIdT (f (runWebIdT cont))