monad-throw-exit-0.1.0.0: app/example.hs
{-# LANGUAGE LambdaCase #-}
import System.Environment (getArgs)
import System.Exit.MonadThrow
main :: IO ()
main = getArgs >>= \case
["exitWith", code] -> exitWith . ExitFailure $ read code
["exitFailure"] -> exitFailure
["exitSuccess"] -> exitSuccess
_ -> fail "Unknown command"