:l shell.hs :def shell (\s -> do shell s; return "") :l :shell cp Defer03_before.hs Defer03.hs -- Test :load! and :reload! -- main is independent of functions with type errors and thus -- executable after load -- warnings on type errors are emitted nevertheless :load! Defer03 -- fails to load module due to type errors :load Defer03 -- succeeds again to load module :reload! -- also succeeds, because the module has not been changed since load :reload -- now, after modifying, reloading should fail :shell echo "-- an extra comment so that the hash changes" >> Defer03.hs :reload -- using the deferred version of reload, loading should succeed again :reload! :shell rm Defer03.hs