Changeset 5170 for src/Pugs/Monads.hs
- Timestamp:
- 07/04/05 00:37:10 (4 years ago)
- svk:copy_cache_prev:
- 6965
- Files:
-
- 1 modified
-
src/Pugs/Monads.hs (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Monads.hs
r3904 r5170 48 48 enterEvalContext :: Cxt -> Exp -> Eval Val 49 49 enterEvalContext cxt = enterContext cxt . evalExp 50 51 {-| 52 Perform the specified evaluation in the specified package. 53 54 (Subsequent chained 'Eval's do /not/ see this package.) 55 -} 56 enterPackage :: String -> Eval a -> Eval a 57 enterPackage pkg = local (\e -> e{ envPackage = pkg }) 58 59 {-| 60 Enter a new environment and mark the previous one as 'Caller'. 61 -} 62 enterCaller :: Eval a -> Eval a 63 enterCaller = local (\env -> env 64 { envCaller = Just env 65 , envDepth = envDepth env + 1 }) 50 66 51 67 {-| … … 240 256 } ] 241 257 242 -- | (This doesn't seem to be used at the moment...)243 caller :: Int -> Eval Env244 caller n = do245 depth <- asks envDepth246 when (depth <= n) $247 fail "Cannot ask for deeper depth"248 asks $ foldl (.) id $ replicate n (fromJust . envCaller)249 250 258 evalVal :: Val -> Eval Val 251 259 evalVal val = do
