projects
/
ghc-hetmet.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
c55eee3
)
Add an ID monad to MonadUtils (used in kind checking)
author
simonpj@microsoft.com
<unknown>
Thu, 12 Nov 2009 09:22:54 +0000
(09:22 +0000)
committer
simonpj@microsoft.com
<unknown>
Thu, 12 Nov 2009 09:22:54 +0000
(09:22 +0000)
compiler/utils/MonadUtils.hs
patch
|
blob
|
history
diff --git
a/compiler/utils/MonadUtils.hs
b/compiler/utils/MonadUtils.hs
index
9b364ae
..
5e01a22
100644
(file)
--- a/
compiler/utils/MonadUtils.hs
+++ b/
compiler/utils/MonadUtils.hs
@@
-8,6
+8,8
@@
module MonadUtils
, MonadFix(..)
, MonadIO(..)
, MonadFix(..)
, MonadIO(..)
+
+ , ID, runID
, liftIO1, liftIO2, liftIO3, liftIO4
, liftIO1, liftIO2, liftIO3, liftIO4
@@
-22,6
+24,8
@@
module MonadUtils
, maybeMapM
) where
, maybeMapM
) where
+import Outputable
+
----------------------------------------------------------------------------------------
-- Detection of available libraries
----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
-- Detection of available libraries
----------------------------------------------------------------------------------------
@@
-43,6
+47,20
@@
import Control.Monad
import Control.Monad.Fix
----------------------------------------------------------------------------------------
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
----------------------------------------------------------------------------------------
-- MTL
----------------------------------------------------------------------------------------