IdM.hs

module IdM where

import MT
import Control_Monad_Fix


newtype IdM a   = I { removeId :: a }

instance Monad IdM where
  return        = I
  I x >>= f     = f x

instance Functor IdM where
  fmap f (I x)  = I (f x)

instance HasBaseMonad IdM IdM where
  inBase        = id

instance MonadFix IdM where
  mfix f        = let r@(I x) = f x in r


Plain-text version of IdM.hs | Valid HTML?