
#14349: Semigroup/Monoid instances for System.Exit.ExitCode -------------------------------------+------------------------------------- Reporter: neil.mayhew | Owner: (none) Type: feature request | Status: upstream Priority: low | Milestone: Component: libraries/base | Version: 8.2.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by neil.mayhew): * cc: hvr, ekmett, core-libraries-committee@… (removed) Old description:
Please add instances for ExitCode along the following lines:
{{{#!hs instance Monoid ExitCode where mempty = ExitSuccess mappend ExitSuccess b = b mappend a _ = a }}}
This allows the summary result of multiple child processes to be computed naturally. For example:
{{{#!hs mconcat <$> mapM system commands }}}
The result is `ExitSuccess` if they all succeeded, and the leftmost failure otherwise
New description: Please add instances for ExitCode along the following lines: {{{#!hs instance Monoid ExitCode where mempty = ExitSuccess mappend ExitSuccess b = b mappend a _ = a }}} This allows the summary result of multiple child processes to be computed naturally. For example: {{{#!hs mconcat <$> mapM system commands }}} The result is `ExitSuccess` if they all succeeded, and the leftmost failure otherwise. This is similar to the behaviour of `set -e` in `bash`. -- -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14349#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler