:l shell.hs :def shell (\s -> do shell s; return "") -- We have this structure of modules: -- A (imports B.boot) -- B (imports A) -- B.boot (imports A) -- C (imports A and B) -- And we load C, to debug some function called b in B. -- But first we touch A, and reload. B.boot will be reloaded, but not B, which will end up with an empty modbreaks. We can no longer set a breakpoint in B.b -- The effect we want is B.boot being reloaded while B is not. :shell cp A1.hs A.hs :l C :break b -- it works ok at this point :shell echo >> A.hs :r :break b -- it does not work anymore