ExitCode
functorial