Add MonadIO instance to SimplM.
authorPaolo Capriotti <p.capriotti@gmail.com>
Thu, 12 Jul 2012 16:49:41 +0000 (17:49 +0100)
committerPaolo Capriotti <p.capriotti@gmail.com>
Fri, 13 Jul 2012 07:25:36 +0000 (08:25 +0100)
compiler/simplCore/SimplMonad.lhs

index 6883b6a..04b8c4e 100644 (file)
@@ -35,6 +35,7 @@ import DynFlags
 import CoreMonad
 import Outputable
 import FastString
+import MonadUtils
 \end{code}
 
 %************************************************************************
@@ -153,6 +154,11 @@ instance MonadUnique SimplM where
 instance HasDynFlags SimplM where
     getDynFlags = SM (\st_env us sc -> return (st_flags st_env, us, sc))
 
+instance MonadIO SimplM where
+    liftIO m = SM $ \_ us sc -> do
+      x <- m
+      return (x, us, sc)
+
 getSimplRules :: SimplM RuleBase
 getSimplRules = SM (\st_env us sc -> return (st_rules st_env, us, sc))