packages feed

exitcode 0.1.0.10 → 0.2.0.0

raw patch · 3 files changed

+77/−44 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Control.Exitcode: liftExitcodeError :: Functor f => f (e, Int) -> a -> ExitcodeT f e a
- Control.Exitcode: liftExitcodeError0 :: Functor f => f Int -> ExitcodeT f () ()
- Control.Exitcode: runExitcode0 :: Exitcode0 -> Maybe Int
- Control.Exitcode: runExitcodeT0 :: Functor f => ExitcodeT0 f -> f (Maybe Int)
+ Control.Exitcode: exitfailureNeg1 :: forall (f :: Type -> Type) e a. Applicative f => e -> Int -> ExitcodeT f e a
+ Control.Exitcode: liftExitFailureNeg1 :: Functor f => f (e, Int) -> ExitcodeT f e a
+ Control.Exitcode: liftExitcodeFailure :: Functor f => f (e, Int) -> a -> ExitcodeT f e a
+ Control.Exitcode: liftExitcodeFailure0 :: Functor f => f Int -> ExitcodeT0 f
+ Control.Exitcode: maybeExitcode :: Exitcode0 -> Maybe Int
+ Control.Exitcode: maybeExitcodeT :: Functor f => ExitcodeT f e a -> f (Maybe Int)

Files

changelog.md view
@@ -1,3 +1,7 @@+0.2.0.0++* some API updates+ 0.1.0.10  * moved to gitlab
exitcode.cabal view
@@ -1,7 +1,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/  name:                   exitcode-version:                0.1.0.10+version:                0.2.0.0 synopsis:               Monad transformer for exit codes description:   Monad transformer for exit codes
src/Control/Exitcode.hs view
@@ -20,21 +20,23 @@ , exitsuccess0 , exitfailure , exitfailure0+, exitfailureNeg1 , exitcodeValue , exitcodeValue0 , fromExitCode , fromExitCode' , liftExitcode-, liftExitcodeError-, liftExitcodeError0+, liftExitcodeFailure+, liftExitcodeFailure0+, liftExitFailureNeg1 , hoistExitcode , embedExitcode , exitcode1 -- * Extraction , runExitcodeT-, runExitcodeT0+, maybeExitcodeT , runExitcode-, runExitcode0+, maybeExitcode , runExitcodeT1 , runExitcode1 -- * Exceptions@@ -54,7 +56,7 @@ import Control.Applicative     ( Applicative((<*>), pure, liftA2) ) import Control.Category ( Category((.)) )-import Control.Exception+import Control.Exception ( try, Exception ) import Control.Lens     ( preview,       view,@@ -176,10 +178,27 @@ exitfailure0 =   exitfailure () +-- | Construct a failing exit code with the given status.+-- If zero (0) is passed meaning success, use negative one (-1).+--+-- >>> exitfailureNeg1 "abc" 0 :: Exitcode String ()+-- ExitcodeT (Identity (Left ("abc",-1)))+--+-- >>> exitfailureNeg1 "abc" 12 :: Exitcode String ()+-- ExitcodeT (Identity (Left ("abc",12)))+exitfailureNeg1 ::+  Applicative f =>+  e+  -> Int+  -> ExitcodeT f e a+exitfailureNeg1 e n =+  liftExitFailureNeg1 (pure (e, n))+ -- | Construct an exit code with the given status. -- Associate a value of type `e` with a failing exit code and a value of the type `a` with a success exit code. -- -- If the given status is `0` then the exit code will succeed with unit.+-- -- >>> exitcodeValue 'x' 99 "abc" :: ExitcodeT Identity Char String -- ExitcodeT (Identity (Left ('x',99))) -- >>> exitcodeValue 'x' 0 "abc" :: ExitcodeT Identity Char String@@ -191,7 +210,7 @@   -> a   -> ExitcodeT f e a exitcodeValue e n =-  liftExitcodeError (pure (e, n))+  liftExitcodeFailure (pure (e, n))  -- | Construct an exit code with the given status. --@@ -242,9 +261,9 @@ -- ExitcodeT (MaybeT (Identity (Just (Left ((),99))))) -- >>> view exitCode (Identity ExitSuccess) -- ExitcodeT (MaybeT (Identity (Just (Right ()))))--- >>> Control.Lens.review exitCode (exitfailure () 99) :: Identity ExitCode+-- >>> review exitCode (exitfailure0 99) :: Identity ExitCode -- Identity (ExitFailure 99)--- >>> Control.Lens.review exitCode exitsuccess0 :: Identity ExitCode+-- >>> review exitCode exitsuccess0 :: Identity ExitCode -- Identity ExitSuccess exitCode ::   (Functor f, Functor g) =>@@ -274,7 +293,7 @@ -- -- >>> runExitcodeT exitsuccess0 :: Identity (Either ((), Int) ()) -- Identity (Right ())--- >>> runExitcodeT (exitfailure () 99) :: Identity (Either ((), Int) ())+-- >>> runExitcodeT (exitfailure0 99) :: Identity (Either ((), Int) ()) -- Identity (Left ((),99)) runExitcodeT ::   ExitcodeT f e a@@ -284,22 +303,22 @@  -- | Extract either the non-zero value or `Nothing`. ----- >>> runExitcodeT0 exitsuccess0 :: Identity (Maybe Int)+-- >>> maybeExitcodeT exitsuccess0 :: Identity (Maybe Int) -- Identity Nothing--- >>> runExitcodeT0 (exitfailure () 99) :: Identity (Maybe Int)+-- >>> maybeExitcodeT (exitfailure0 99) :: Identity (Maybe Int) -- Identity (Just 99)-runExitcodeT0 ::+maybeExitcodeT ::   Functor f =>-  ExitcodeT0 f+  ExitcodeT f e a   -> f (Maybe Int)-runExitcodeT0 x =+maybeExitcodeT x =   preview (_Left . _2) <$> runExitcodeT x  -- | Extract either the non-zero value or the success value. -- -- >>> runExitcode exitsuccess0 :: Either ((), Int) () -- Right ()--- >>> runExitcode (exitfailure () 99) :: Either ((), Int) ()+-- >>> runExitcode (exitfailure0 99) :: Either ((), Int) () -- Left ((),99) runExitcode ::   Exitcode e a@@ -309,15 +328,15 @@  -- | Extract either the non-zero value or `Nothing`. ----- >>> runExitcode0 exitsuccess0 :: Maybe Int+-- >>> maybeExitcode exitsuccess0 :: Maybe Int -- Nothing--- >>> runExitcode0 (exitfailure () 99) :: Maybe Int+-- >>> maybeExitcode (exitfailure0 99) :: Maybe Int -- Just 99-runExitcode0 ::+maybeExitcode ::   Exitcode0   -> Maybe Int-runExitcode0 =-  runIdentity . runExitcodeT0+maybeExitcode =+  runIdentity . maybeExitcodeT  -- | Isomorphism to integer. --@@ -339,15 +358,15 @@ _ExitcodeInt =   iso     (\(ExitcodeT x) -> fmap (either (view _2) (\() -> 0)) x)-    (\x -> liftExitcodeError (((),) <$> x) ())+    (\x -> liftExitcodeFailure (((),) <$> x) ())  -- | Setter to integer. ----- >>> > preview _ExitcodeInt' (exitsuccess0 :: ExitcodeT [] () ())+-- >>> preview _ExitcodeInt' (exitsuccess0 :: ExitcodeT0 []) -- Just 0--- >>> preview _ExitcodeInt' (exitfailure0 99 :: ExitcodeT [] () ())+-- >>> preview _ExitcodeInt' (exitfailure0 99 :: ExitcodeT0 []) -- Just 99--- >>> preview _ExitcodeInt' (exitfailure0 0 :: ExitcodeT [] () ())+-- >>> preview _ExitcodeInt' (exitfailure0 0 :: ExitcodeT0 []) -- Just 0 -- >>> over _ExitcodeInt' (subtract 1) exitsuccess0 :: ExitcodeT0 Identity -- ExitcodeT (Identity (Left ((),-1)))@@ -365,7 +384,7 @@  -- | A traversal to exit failure. ----- >>> preview _ExitFailure (exitfailure () 99 :: ExitcodeT0 Identity)+-- >>> preview _ExitFailure (exitfailure0 99 :: ExitcodeT0 Identity) -- Just ((),99) -- >>> preview _ExitFailure (exitsuccess0 :: ExitcodeT0 Identity) -- Nothing@@ -383,7 +402,7 @@     (e, Int)     (e', Int) _ExitFailure f (ExitcodeT x) =-  ExitcodeT <$> traverse (either (\z -> runExitcodeT (liftExitcodeError (f z) ())) (pure . pure)) x+  ExitcodeT <$> traverse (either (\z -> runExitcodeT (liftExitcodeFailure (f z) ())) (pure . pure)) x  -- | A traversal over the associated failing value. --@@ -393,7 +412,7 @@ -- ExitcodeT (Identity (Left ("cba",99))) -- >>> over _ExitFailureError reverse (exitfailure "abc" 0) :: ExitcodeT Identity String () -- ExitcodeT (Identity (Right ()))--- >>> preview _ExitFailureError (exitfailure () 99 :: ExitcodeT0 Identity)+-- >>> preview _ExitFailureError (exitfailure0 99 :: ExitcodeT0 Identity) -- Just () -- >>> preview _ExitFailureError (exitsuccess0 :: ExitcodeT0 Identity) -- Nothing@@ -415,11 +434,11 @@ -- ExitcodeT (Identity (Right ())) -- >>> over _ExitSuccess (\x -> x) (exitfailure0 0) -- ExitcodeT (Identity (Right ()))--- >>> preview _ExitSuccess (exitfailure () 99)+-- >>> preview _ExitSuccess (exitfailure0 99) -- Nothing -- >>> preview _ExitSuccess exitsuccess0 -- Just ()--- >>> Control.Lens.review _ExitSuccess "abc" :: ExitcodeT Identity () String+-- >>> review _ExitSuccess "abc" :: ExitcodeT Identity () String -- ExitcodeT (Identity (Right "abc")) _ExitSuccess ::   Prism@@ -452,13 +471,13 @@ -- -- >>> exitsuccess "abc" >>- \s -> exitsuccess (reverse s) :: ExitcodeT Identity () String -- ExitcodeT (Identity (Right "cba"))--- >>> exitsuccess "abc" >>- \_ -> exitfailure () 99 :: ExitcodeT Identity () ()+-- >>> exitsuccess "abc" >>- \_ -> exitfailure0 99 :: ExitcodeT0 Identity -- ExitcodeT (Identity (Left ((),99))) -- >>> exitfailure 'x' 99 >>- \_ -> exitsuccess "abc" :: ExitcodeT Identity Char String -- ExitcodeT (Identity (Left ('x',99))) -- >>> exitfailure 'x' 99 >>- \_ -> exitfailure 'y' 88 :: ExitcodeT Identity Char () -- ExitcodeT (Identity (Left ('x',99)))--- >>> let loop = loop in exitfailure () 99 >>- loop :: ExitcodeT Identity () ()+-- >>> let loop = loop in exitfailure0 99 >>- loop :: ExitcodeT0 Identity -- ExitcodeT (Identity (Left ((),99))) instance Monad f => Bind (ExitcodeT f e) where   (>>-) =@@ -512,9 +531,9 @@  -- | ----- >>> duplicated (exitfailure () 0) :: ExitcodeT Identity () (ExitcodeT Identity () ())+-- >>> duplicated (exitfailure0 0) :: ExitcodeT Identity () (ExitcodeT0 Identity) -- ExitcodeT (Identity (Right (ExitcodeT (Identity (Right ())))))--- >>> duplicated (exitfailure () 99) :: ExitcodeT Identity () (ExitcodeT Identity () ())+-- >>> duplicated (exitfailure0 99) :: ExitcodeT Identity () (ExitcodeT0 Identity) -- ExitcodeT (Identity (Right (ExitcodeT (Identity (Left ((),99)))))) -- >>> duplicated (exitsuccess "abc") :: ExitcodeT Identity () (ExitcodeT Identity () String) -- ExitcodeT (Identity (Right (ExitcodeT (Identity (Right "abc")))))@@ -578,21 +597,31 @@ liftExitcode x =   ExitcodeT (Right <$> x) -liftExitcodeError ::+liftExitcodeFailure ::   Functor f =>   f (e, Int)   -> a   -> ExitcodeT f e a-liftExitcodeError x a =+liftExitcodeFailure x a =   ExitcodeT ((\(e, n) -> bool (Left (e, n)) (Right a) (n == 0)) <$> x) -liftExitcodeError0 ::+liftExitcodeFailure0 ::   Functor f =>   f Int-  -> ExitcodeT f () ()-liftExitcodeError0 x =-  liftExitcodeError (((),) <$> x) ()+  -> ExitcodeT0 f+liftExitcodeFailure0 x =+  liftExitcodeFailure (((),) <$> x) () +-- |+--+-- If the given exitcode is success (0), return a failure and make the exitcode negative one (-1).+liftExitFailureNeg1 ::+  Functor f =>+  f (e, Int)+  -> ExitcodeT f e a+liftExitFailureNeg1 x =+  ExitcodeT ((\(e, n) -> Left (e, bool n (-1) (n == 0))) <$> x)+ hoistExitcode ::   (forall x. f x -> g x)   -> ExitcodeT f e a@@ -622,7 +651,7 @@ -- ExitcodeT ("",Left ('x',99)) -- >>> listen (exitsuccess 99 :: ExitcodeT ((,) String) () Int) -- ExitcodeT ("",Right (99,""))--- >>> tell "abc" :: ExitcodeT ((,) String) () ()+-- >>> tell "abc" :: ExitcodeT0 ((,) String) -- ExitcodeT ("abc",Right ()) -- >>> pass (exitsuccess ('x', reverse)) :: ExitcodeT ((,) String) () Char -- ExitcodeT ("",Right 'x')@@ -656,7 +685,7 @@ -- ExitcodeT (Right (Left ('x',99))) -- >>> catchError (exitfailure 'x' 99) (exitfailure 'y') :: ExitcodeT (Either Int) Char () -- ExitcodeT (Right (Left ('x',99)))--- >>> catchError exitsuccess0 (\_ -> exitsuccess0) :: ExitcodeT (Either Int) () ()+-- >>> catchError exitsuccess0 (\_ -> exitsuccess0) :: ExitcodeT0 (Either Int) -- ExitcodeT (Right (Right ())) instance MonadError e f => MonadError e (ExitcodeT f e') where   throwError =@@ -712,7 +741,7 @@ -- -- >>> runExitcodeT1 exitsuccess0 -- Right ()--- >>> runExitcodeT1 (exitfailure () 99) :: Identity (Either ((), Int) ())+-- >>> runExitcodeT1 (exitfailure0 99) :: Identity (Either ((), Int) ()) -- Identity (Left ((),99)) -- >>> runExitcodeT1 (exitcode1 0 "abc") :: Identity (Either (String, Int) String) -- Identity (Right "abc")@@ -728,7 +757,7 @@ -- -- >>> runExitcode1 exitsuccess0 -- Right ()--- >>> runExitcode1 (exitfailure () 99)+-- >>> runExitcode1 (exitfailure0 99) -- Left ((),99) -- >>> runExitcode1 (exitcode1 0 "abc") -- Right "abc"