@@ -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
@@ -937,6 +938,9 @@ supportedLits = Map.fromList [
937938 (" Process.setEnv" , lit' $ Process. setEnv @ () @ () @ () . map (bimap Text. unpack Text. unpack)),
938939 (" Process.runProcess" , lit' $ runProcess @ IO @ () @ () @ () ),
939940 (" Process.runProcess_" , lit' $ runProcess_ @ IO @ () @ () @ () ),
941+ -- Exit
942+ (" Exit.ExitSuccess" , lit' Exit. ExitSuccess ),
943+ (" Exit.ExitFailure" , lit' Exit. ExitFailure ),
940944 -- Lists
941945 (" List.and" , lit' (List. and @ [] )),
942946 (" List.or" , lit' (List. or @ [] )),
@@ -1100,6 +1104,10 @@ polyLits = Map.fromList
11001104 " Tuple.(,)" (,) :: forall a b . a -> b -> (a ,b )
11011105 " Tuple.(,,)" (,,) :: forall a b c . a -> b -> c -> (a ,b ,c )
11021106 " Tuple.(,,,)" (,,,) :: forall a b c d . a -> b -> c -> d -> (a ,b ,c ,d )
1107+ -- Exit
1108+ " Exit.die" Exit. die :: forall a . String -> IO a
1109+ " Exit.exitWith" Exit. exitWith :: forall a . ExitCode -> IO a
1110+ " Exit.exitCode" exit_exitCode :: forall a . a -> (Int -> a ) -> ExitCode -> a
11031111 -- Exceptions
11041112 " Error.error" (error . Text. unpack) :: forall a . Text -> a
11051113 -- Bool
@@ -1239,6 +1247,14 @@ unsafeGetForall key l = Maybe.fromMaybe (error $ "Bad compile-time lookup for "
12391247 (forall', vars, irep, _) <- Map. lookup key polyLits
12401248 pure (UForall l () [] forall' vars irep [] )
12411249
1250+ --------------------------------------------------------------------------------
1251+ -- Accessor for ExitCode
1252+
1253+ exit_exitCode :: a -> (Int -> a ) -> ExitCode -> a
1254+ exit_exitCode ok fail' = \ case
1255+ ExitSuccess -> ok
1256+ ExitFailure i -> fail' i
1257+
12421258--------------------------------------------------------------------------------
12431259-- UTF-8 specific operations without all the environment gubbins
12441260--
0 commit comments