@@ -29,6 +29,7 @@ import qualified Language.Haskell.TH as TH
2929import qualified Language.Haskell.TH.Syntax as TH
3030import Language.Haskell.TH (Q )
3131
32+ import qualified System.Exit as Exit
3233import qualified Data.Graph as Graph
3334import qualified Data.Eq as Eq
3435import qualified Data.Either as Either
@@ -942,6 +943,9 @@ supportedLits = Map.fromList [
942943 (" Process.setEnv" , lit' $ Process. setEnv @ () @ () @ () . map (bimap Text. unpack Text. unpack)),
943944 (" Process.runProcess" , lit' $ runProcess @ IO @ () @ () @ () ),
944945 (" Process.runProcess_" , lit' $ runProcess_ @ IO @ () @ () @ () ),
946+ -- Exit
947+ (" Exit.ExitSuccess" , lit' Exit. ExitSuccess ),
948+ (" Exit.ExitFailure" , lit' Exit. ExitFailure ),
945949 -- Lists
946950 (" List.and" , lit' (List. and @ [] )),
947951 (" List.or" , lit' (List. or @ [] )),
@@ -1105,6 +1109,10 @@ polyLits = Map.fromList
11051109 " Tuple.(,)" (,) :: forall a b . a -> b -> (a ,b )
11061110 " Tuple.(,,)" (,,) :: forall a b c . a -> b -> c -> (a ,b ,c )
11071111 " Tuple.(,,,)" (,,,) :: forall a b c d . a -> b -> c -> d -> (a ,b ,c ,d )
1112+ -- Exit
1113+ " Exit.die" Exit. die :: forall a . String -> IO a
1114+ " Exit.exitWith" Exit. exitWith :: forall a . ExitCode -> IO a
1115+ " Exit.exitCode" exit_exitCode :: forall a . a -> (Int -> a ) -> ExitCode -> a
11081116 -- Exceptions
11091117 " Error.error" (error . Text. unpack) :: forall a . Text -> a
11101118 -- Bool
@@ -1244,6 +1252,14 @@ unsafeGetForall key l = Maybe.fromMaybe (error $ "Bad compile-time lookup for "
12441252 (forall', vars, irep, _) <- Map. lookup key polyLits
12451253 pure (UForall l () [] forall' vars irep [] )
12461254
1255+ --------------------------------------------------------------------------------
1256+ -- Accessor for ExitCode
1257+
1258+ exit_exitCode :: a -> (Int -> a ) -> ExitCode -> a
1259+ exit_exitCode ok fail' = \ case
1260+ ExitSuccess -> ok
1261+ ExitFailure i -> fail' i
1262+
12471263--------------------------------------------------------------------------------
12481264-- UTF-8 specific operations without all the environment gubbins
12491265--
0 commit comments