runCompound b (While cond code) =
    do ec <- runCommands' IgnoreE cond
       case ec of ExitSuccess -> do runCommands' b code
                                    runCompound b $ While cond code
                  _           -> return ExitSuccess
runCompound b (While cond code) =
    do ec <- runCommands' IgnoreE cond
       case ec of ExitSuccess -> do runCommands' b code
                                    runCompound b $ While cond code
                  _           -> return ExitSuccess
runCompound b (While cond code) =
    do ec <- runCommands' IgnoreE cond
       case ec of ExitSuccess -> do runCommands' b code
                                    runCompound b $ While cond code
                  _           -> return ExitSuccess