Fix warnings in utils/State
authorIan Lynagh <igloo@earth.li>
Sun, 13 Jan 2008 13:16:58 +0000 (13:16 +0000)
committerIan Lynagh <igloo@earth.li>
Sun, 13 Jan 2008 13:16:58 +0000 (13:16 +0000)
compiler/utils/State.hs

index 578a7b3..bf5b3a0 100644 (file)
@@ -1,63 +1,51 @@
-{-# OPTIONS -w #-}
--- The above warning supression flag is a temporary kludge.
--- While working on this module you are encouraged to remove it and fix
--- any warnings in the module. See
---     http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings
--- for details
 
 module State where
 
-newtype State s a
-       = State
-       { runState' :: s -> (# a, s #) }
+newtype State s a = State { runState' :: s -> (# a, s #) }
 
 instance Monad (State s) where
-    return x   = State $ \s -> (# x, s #)
-    m >>= n    = State $ \s ->
-                       case runState' m s of
-                         (# r, s' #)   -> runState' (n r) s'
+    return x = State $ \s -> (# x, s #)
+    m >>= n  = State $ \s -> case runState' m s of
+                             (# r, s' #) -> runState' (n r) s'
 
-get :: State s s
-get    = State $ \s -> (# s, s #)
+get :: State s s
+get = State $ \s -> (# s, s #)
 
 gets :: (s -> a) -> State s a
-gets f         = State $ \s -> (# f s, s #)
+gets f = State $ \s -> (# f s, s #)
 
-put ::         s -> State s ()
-put s' = State $ \s -> (# (), s' #)
+put :: s -> State s ()
+put s' = State $ \_ -> (# (), s' #)
 
 modify :: (s -> s) -> State s ()
 modify f = State $ \s -> (# (), f s #)
 
 
 evalState :: State s a -> s -> a
-evalState s i
-       = case runState' s i of
-               (# a, s' #)     -> a
+evalState s i = case runState' s i of
+                (# a, _ #) -> a
 
 
 execState :: State s a -> s -> s
-execState s i
-       = case runState' s i of
-               (# a, s' #)     -> s'
+execState s i = case runState' s i of
+                (# _, s' #) -> s'
 
 
 runState :: State s a -> s -> (a, s)
-runState s i
-       = case runState' s i of
-               (# a, s' #)     -> (a, s')
+runState s i = case runState' s i of
+               (# a, s' #) -> (a, s')
 
 
 mapAccumLM
-       :: Monad m
-       => (acc -> x -> m (acc, y))     -- ^ combining funcction
-       -> acc                          -- ^ initial state
-       -> [x]                          -- ^ inputs
-       -> m (acc, [y])                 -- ^ final state, outputs
+        :: Monad m
+        => (acc -> x -> m (acc, y))     -- ^ combining funcction
+        -> acc                          -- ^ initial state
+        -> [x]                          -- ^ inputs
+        -> m (acc, [y])                 -- ^ final state, outputs
 
-mapAccumLM _ s []      = return (s, [])
+mapAccumLM _ s [] = return (s, [])
 mapAccumLM f s (x:xs)
- = do
-       (s1, x')        <- f s x
-       (s2, xs')       <- mapAccumLM f s1 xs
-       return          (s2, x' : xs')
+ = do (s1, x')  <- f s x
+      (s2, xs') <- mapAccumLM f s1 xs
+      return (s2, x' : xs')
+