Commit 0aabb948 authored by simonpj@microsoft.com's avatar simonpj@microsoft.com

Add an ID monad to MonadUtils (used in kind checking)

parent c55eee3a
......@@ -8,6 +8,8 @@ module MonadUtils
, MonadFix(..)
, MonadIO(..)
, ID, runID
, liftIO1, liftIO2, liftIO3, liftIO4
......@@ -22,6 +24,8 @@ module MonadUtils
, maybeMapM
) where
import Outputable
----------------------------------------------------------------------------------------
-- Detection of available libraries
----------------------------------------------------------------------------------------
......@@ -42,6 +46,20 @@ import Control.Monad.Trans
import Control.Monad
import Control.Monad.Fix
----------------------------------------------------------------------------------------
-- The ID monad
----------------------------------------------------------------------------------------
newtype ID a = ID a
instance Monad ID where
return x = ID x
(ID x) >>= f = f x
_ >> y = y
fail s = panic s
runID :: ID a -> a
runID (ID x) = x
----------------------------------------------------------------------------------------
-- MTL
----------------------------------------------------------------------------------------
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment