import FastString
import SrcLoc
import Util
+import Maybes
import Control.Exception
import Control.Monad
import qualified Data.Map as Map
import Data.Array.Unboxed
-import Data.Traversable ( traverse )
import Data.Typeable ( Typeable )
import Data.Maybe
import Data.IORef
-- Give names to suspensions and bind them in the local env
mb_terms' <- if bindThings
- then io$ mapM (traverse (bindSuspensions cms)) mb_terms
+ then io$ mapM (fmapMMaybe (bindSuspensions cms)) mb_terms
else return mb_terms
- ppr_terms <- io$ mapM (traverse (printTerm cms)) mb_terms'
+ ppr_terms <- io$ mapM (fmapMMaybe (printTerm cms)) mb_terms'
let docs = [ ppr id <+> char '=' <+> t | (Just t,id) <- zip ppr_terms ids]
unqual <- io$ GHC.getPrintUnqual cms
io . putStrLn . showSDocForUser unqual $ Outputable.vcat docs
refreshBkptTable [] = return ()
refreshBkptTable (ms:mod_sums) = do
sess <- getSession
- when (Opt_Debugging `elem` flags (GHC.ms_hspp_opts ms)) $ do
+ when isDebugging $ do
old_table <- getBkptTable
new_table <- addModuleGHC sess old_table (GHC.ms_mod ms)
setBkptTable new_table
(ppr mod <> text ": inserted " <> int (length sites) <>
text " breakpoints")
return$ addModule mod sites bt
+#if defined(GHCI) && defined(DEBUGGER)
+ isDebugging = Opt_Debugging `elem` flags (GHC.ms_hspp_opts ms)
+#else
+ isDebugging = False
+#endif
\ No newline at end of file