{-# 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))