[Fencommits] fenserve: simplify the previous refactoring a bit

Benja Fallenstein benja.fallenstein at gmail.com
Tue Jun 5 20:54:48 EEST 2007


Tue Jun  5 20:54:41 EEST 2007  Benja Fallenstein <benja.fallenstein at gmail.com>
  * simplify the previous refactoring a bit
diff -rN -u old-fenserve/fendata/Utils.hs new-fenserve/fendata/Utils.hs
--- old-fenserve/fendata/Utils.hs	2007-06-05 20:54:48.000000000 +0300
+++ new-fenserve/fendata/Utils.hs	2007-06-05 20:54:48.000000000 +0300
@@ -43,9 +43,9 @@
 puts :: MonadState o m => Changer i o -> i -> m ()
 puts chg x = modify (sets chg x)
 
-inside :: Getter i o -> Changer i o -> State i a -> State o a
-inside g f m = State $ \o -> let (r,i') = runState m (g o) in (r, sets f i' o)
-
+inside :: MonadState o m => Getter i o -> Changer i o -> State i a -> m a
+inside g chg m = do inner <- gets g; let (r, inner') = runState m inner
+                    puts chg inner'; return r
 
 
 escape' = concatMap escapeMore . escape where




More information about the Fencommits mailing list