[commit: hoopl] master: SimpleUniqueMonad: define instance for Functor (e77a80b)
Norman Ramsey
nr at eecs.harvard.edu
Tue Nov 6 18:07:27 CET 2012
Repository : ssh://darcs.haskell.org//srv/darcs/packages/hoopl
On branch : master
http://hackage.haskell.org/trac/ghc/changeset/e77a80bc8fffd8b3ebc50acba8901a35c9613114
>---------------------------------------------------------------
commit e77a80bc8fffd8b3ebc50acba8901a35c9613114
Author: Bernhard Urban <lewurm at gmail.com>
Date: Mon Oct 29 16:34:22 2012 +0100
SimpleUniqueMonad: define instance for Functor
.. for convient use of `<$>'
>---------------------------------------------------------------
src/Compiler/Hoopl/Unique.hs | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/src/Compiler/Hoopl/Unique.hs b/src/Compiler/Hoopl/Unique.hs
index 6b4a570..4d8bc06 100644
--- a/src/Compiler/Hoopl/Unique.hs
+++ b/src/Compiler/Hoopl/Unique.hs
@@ -21,6 +21,8 @@ import Compiler.Hoopl.Collections
import qualified Data.IntMap as M
import qualified Data.IntSet as S
+import Control.Monad (liftM)
+
-----------------------------------------------------------------------------
-- Unique
-----------------------------------------------------------------------------
@@ -104,6 +106,9 @@ class Monad m => UniqueMonad m where
newtype SimpleUniqueMonad a = SUM { unSUM :: [Unique] -> (a, [Unique]) }
+instance Functor SimpleUniqueMonad where
+ fmap = liftM
+
instance Monad SimpleUniqueMonad where
return a = SUM $ \us -> (a, us)
m >>= k = SUM $ \us -> let (a, us') = unSUM m us in
More information about the Cvs-libraries
mailing list