
Hi, In src/prelude/System/SystemFun.hs the OS's system function is called to implement System.system. However, the various checks are not done and WEXITSTATUS is not applied as appropriate. It looks like src/runtime/Builtin/cSystem.c does the same thing. src/libraries/base/System/Cmd.hs uses systemCmd when __GLASGOW_HASKELL__ is defined, which is defined in libraries/base/cbits/system.c. This looks like it is doing the right stuff. This causes this: -----8<----------8<----------8<----------8<----- main :: IO () main = mapM_ f [0..5] f :: Int -> IO () f i = do x <- system $ "exit " ++ show i print x -----8<----------8<----------8<----------8<----- to output this for me: ExitSuccess ExitFailure 256 ExitFailure 512 ExitFailure 768 ExitFailure 1024 ExitFailure 1280 Thanks Ian