
3 Jun
2009
3 Jun
'09
12:12 a.m.
remLookupFwd :: (ReVars m t) => SimplRe t -> ReM m t (ReInfo t) remLookupFwd re = do fwd <- gets resFwdMap -- let { Just reinfo = M.lookup fwd re } -- PROBLEM reinfo <- liftMaybe $ M.lookup re fwd -- PROBLEM return reinfo
liftMaybe :: Monad m => Maybe a -> m a liftMaybe Nothing = fail "Nothing" liftMaybe (Just x) = return x
I made two changes: 1. You had the arguments to M.lookup backwards. 2. lookup does not return any generalized Monad, just Maybe (I think that should be changed). I added the simple liftMaybe function to convert the Maybe result into something that will work with your state monad. Michael