DsMetaEnv, DsMetaVal(..), dsLookupMetaEnv, dsExtendMetaEnv,
- bindLocalsDs, getLocalBindsDs,
-- Warnings
DsWarning, warnDs, failWithDs,
data DsLclEnv = DsLclEnv {
ds_meta :: DsMetaEnv, -- Template Haskell bindings
- ds_loc :: SrcSpan, -- to put in pattern-matching error msgs
- ds_locals :: OccEnv Id -- For locals in breakpoints
+ ds_loc :: SrcSpan -- to put in pattern-matching error msgs
}
-- Inside [| |] brackets, the desugarer looks
ds_unqual = mkPrintUnqualified rdr_env,
ds_msgs = msg_var}
lcl_env = DsLclEnv { ds_meta = emptyNameEnv,
- ds_loc = noSrcSpan,
- ds_locals = emptyOccEnv }
+ ds_loc = noSrcSpan }
return (gbl_env, lcl_env)
dsExtendMetaEnv menv thing_inside
= updLclEnv (\env -> env { ds_meta = ds_meta env `plusNameEnv` menv }) thing_inside
\end{code}
-
-\begin{code}
-getLocalBindsDs :: DsM [Id]
-getLocalBindsDs = do { env <- getLclEnv; return (occEnvElts$ ds_locals env) }
-
-bindLocalsDs :: [Id] -> DsM a -> DsM a
-bindLocalsDs new_ids enclosed_scope =
- updLclEnv (\env-> env {ds_locals = ds_locals env `extendOccEnvList` occnamed_ids})
- enclosed_scope
- where occnamed_ids = [ (nameOccName (idName id),id) | id <- new_ids ]
-\end{code}
-