-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Monad transformer for exit codes -- -- -- Monad transformer for exit codes @package exitcode @version 0.1.0.5 module Control.Exitcode -- | An exit code status where failing with a value `0` cannot be -- represented. -- -- Transformer for either a (non-zero exit code value (Int) with -- error :: e) or a (value :: a). data ExitcodeT f e a type Exitcode e a = ExitcodeT Identity e a type ExitcodeT0 f = ExitcodeT f () () type Exitcode0 = Exitcode () () -- | Construct a succeeding exit code with the given value. -- --
-- >>> exitsuccess "abc" :: ExitcodeT Identity () String -- ExitcodeT (Identity (Right "abc")) --exitsuccess :: Applicative f => a -> ExitcodeT f e a -- | Construct a succeeding exit code with unit. -- --
-- >>> exitsuccess0 :: ExitcodeT0 Identity -- ExitcodeT (Identity (Right ())) --exitsuccess0 :: Applicative f => ExitcodeT f e () -- | Construct a failing exit code with the given status. -- -- If the given status is `0` then the exit code will succeed with unit. -- --
-- >>> exitfailure 'x' 99 :: ExitcodeT Identity Char ()
-- ExitcodeT (Identity (Left ('x',99)))
--
exitfailure :: Applicative f => e -> Int -> ExitcodeT f e ()
-- | Construct a failing exit code with the given status.
--
-- If the given status is `0` then the exit code will succeed with unit.
exitfailure0 :: Applicative f => Int -> ExitcodeT0 f
-- | 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
-- ExitcodeT (Identity (Right "abc"))
exitcodeValue :: Applicative f => e -> Int -> a -> ExitcodeT f e a
-- | Construct an exit code with the given status.
--
-- If the given status is `0` then the exit code will succeed with unit.
--
-- -- >>> exitcodeValue0 99 :: ExitcodeT0 Identity -- ExitcodeT (Identity (Left ((),99))) -- -- >>> exitcodeValue0 0 :: ExitcodeT0 Identity -- ExitcodeT (Identity (Right ())) --exitcodeValue0 :: Applicative f => Int -> ExitcodeT0 f -- | From base exitcode. -- --
-- >>> fromExitCode (Identity ExitSuccess) -- ExitcodeT (Identity (Right ())) -- -- >>> fromExitCode (Identity (ExitFailure 99)) -- ExitcodeT (Identity (Left ((),99))) --fromExitCode :: Functor f => f ExitCode -> ExitcodeT0 f -- | From base exitcode. -- --
-- >>> fromExitCode' ExitSuccess -- ExitcodeT (Identity (Right ())) -- -- >>> fromExitCode' (ExitFailure 99) -- ExitcodeT (Identity (Left ((),99))) -- -- >>> fromExitCode' (ExitFailure 0) -- ExitcodeT (Identity (Right ())) --fromExitCode' :: ExitCode -> Exitcode0 liftExitcode :: Functor f => f a -> ExitcodeT f e a liftExitcodeError :: Functor f => f (e, Int) -> a -> ExitcodeT f e a liftExitcodeError0 :: Functor f => f Int -> ExitcodeT f () () -- | Extract either the non-zero value or the success value. -- --
-- >>> runExitcodeT exitsuccess0 :: Identity (Either ((), Int) ()) -- Identity (Right ()) -- -- >>> runExitcodeT (exitfailure () 99) :: Identity (Either ((), Int) ()) -- Identity (Left ((),99)) --runExitcodeT :: ExitcodeT f e a -> f (Either (e, Int) a) -- | Extract either the non-zero value or Nothing. -- --
-- >>> runExitcodeT0 exitsuccess0 :: Identity (Maybe Int) -- Identity Nothing -- -- >>> runExitcodeT0 (exitfailure () 99) :: Identity (Maybe Int) -- Identity (Just 99) --runExitcodeT0 :: Functor f => ExitcodeT0 f -> f (Maybe Int) -- | Extract either the non-zero value or the success value. -- --
-- >>> runExitcode exitsuccess0 :: Either ((), Int) () -- Right () -- -- >>> runExitcode (exitfailure () 99) :: Either ((), Int) () -- Left ((),99) --runExitcode :: Exitcode e a -> Either (e, Int) a -- | Extract either the non-zero value or Nothing. -- --
-- >>> runExitcode0 exitsuccess0 :: Maybe Int -- Nothing -- -- >>> runExitcode0 (exitfailure () 99) :: Maybe Int -- Just 99 --runExitcode0 :: Exitcode0 -> Maybe Int -- | Isomorphism from base exitcode to underlying `Maybe (Either Int ())` -- where Int is non-zero. -- --
-- >>> view exitCode (Identity (ExitFailure 99)) -- ExitcodeT (MaybeT (Identity (Just (Left ((),99))))) -- -- >>> view exitCode (Identity ExitSuccess) -- ExitcodeT (MaybeT (Identity (Just (Right ())))) -- -- >>> Control.Lens.review exitCode (exitfailure () 99) :: Identity ExitCode -- Identity (ExitFailure 99) -- -- >>> Control.Lens.review exitCode exitsuccess0 :: Identity ExitCode -- Identity ExitSuccess --exitCode :: (Functor f, Functor g) => Iso (f ExitCode) (g ExitCode) (ExitcodeT0 (MaybeT f)) (ExitcodeT0 (MaybeT g)) -- | Isomorphism to integer. -- --
-- >>> view _ExitcodeInt exitsuccess0 :: [Int] -- [0] -- -- >>> view _ExitcodeInt (exitfailure0 99) :: [Int] -- [99] -- -- >>> review _ExitcodeInt [0] -- ExitcodeT [Right ()] -- -- >>> review _ExitcodeInt [99] -- ExitcodeT [Left ((),99)] --_ExitcodeInt :: (Functor f, Functor f') => Iso (ExitcodeT0 f) (ExitcodeT0 f') (f Int) (f' Int) -- | Setter to integer. -- --
-- >>> over _ExitcodeInt' (subtract 1) (exitsuccess0) :: ExitcodeT0 Identity -- ExitcodeT (Identity (Left ((),-1))) -- -- >>> over _ExitcodeInt' (subtract 1) (exitfailure0 99) :: ExitcodeT0 Identity -- ExitcodeT (Identity (Left ((),98))) -- -- >>> over _ExitcodeInt' (subtract 1) (exitfailure0 1) :: ExitcodeT0 Identity -- ExitcodeT (Identity (Right ())) --_ExitcodeInt' :: Functor f => Setter' (ExitcodeT0 f) Int -- | A traversal to exit failure. -- --
-- >>> preview _ExitFailure (exitfailure () 99 :: ExitcodeT0 Identity)
-- Just ((),99)
--
-- >>> preview _ExitFailure (exitsuccess0 :: ExitcodeT0 Identity)
-- Nothing
--
-- >>> over _ExitFailure (\(e, n) -> (e + 1, n + 1)) (exitsuccess0 :: ExitcodeT Identity Int ())
-- ExitcodeT (Identity (Right ()))
--
-- >>> over _ExitFailure (\(e, n) -> (reverse e, n + 1)) (exitfailure "abc" 1 :: ExitcodeT Identity String ())
-- ExitcodeT (Identity (Left ("cba",2)))
--
-- >>> over _ExitFailure (\(e, n) -> (reverse e, n - 1)) (exitfailure "abc" 1 :: ExitcodeT Identity String ())
-- ExitcodeT (Identity (Right ()))
--
_ExitFailure :: Traversable f => Traversal (ExitcodeT f e ()) (ExitcodeT f e' ()) (e, Int) (e', Int)
-- | A traversal over the associated failing value.
--
--
-- >>> over _ExitFailureError reverse exitsuccess0 :: ExitcodeT Identity [Int] ()
-- ExitcodeT (Identity (Right ()))
--
-- >>> over _ExitFailureError reverse (exitfailure "abc" 99) :: ExitcodeT Identity String ()
-- ExitcodeT (Identity (Left ("cba",99)))
--
-- >>> over _ExitFailureError reverse (exitfailure "abc" 0) :: ExitcodeT Identity String ()
-- ExitcodeT (Identity (Right ()))
--
-- >>> preview _ExitFailureError (exitfailure () 99 :: ExitcodeT0 Identity)
-- Just ()
--
-- >>> preview _ExitFailureError (exitsuccess0 :: ExitcodeT0 Identity)
-- Nothing
--
_ExitFailureError :: Traversable f => Traversal (ExitcodeT f e a) (ExitcodeT f e' a) e e'
-- | A prism to exit success.
--
-- -- >>> over _ExitSuccess (\x -> x) (exitfailure0 99) -- ExitcodeT (Identity (Left ((),99))) -- -- >>> over _ExitSuccess (\x -> x) (exitfailure0 0) -- ExitcodeT (Identity (Right ())) -- -- >>> over _ExitSuccess (\x -> x) (exitfailure0 0) -- ExitcodeT (Identity (Right ())) -- -- >>> preview _ExitSuccess (exitfailure () 99) -- Nothing -- -- >>> preview _ExitSuccess exitsuccess0 -- Just () -- -- >>> Control.Lens.review _ExitSuccess "abc" :: ExitcodeT Identity () String -- ExitcodeT (Identity (Right "abc")) --_ExitSuccess :: Prism (Exitcode e a) (Exitcode e a') a a' instance GHC.Base.Functor f => GHC.Base.Functor (Control.Exitcode.ExitcodeT f e) instance GHC.Base.Monad f => Data.Functor.Bind.Class.Apply (Control.Exitcode.ExitcodeT f e) instance GHC.Base.Monad f => GHC.Base.Applicative (Control.Exitcode.ExitcodeT f e) instance GHC.Base.Monad f => Data.Functor.Bind.Class.Bind (Control.Exitcode.ExitcodeT f e) instance GHC.Base.Monad f => GHC.Base.Monad (Control.Exitcode.ExitcodeT f e) instance GHC.Base.Monad f => Data.Functor.Alt.Alt (Control.Exitcode.ExitcodeT f e) instance (GHC.Base.Semigroup a, GHC.Base.Applicative f) => GHC.Base.Semigroup (Control.Exitcode.ExitcodeT f e a) instance (GHC.Base.Monoid a, GHC.Base.Applicative f) => GHC.Base.Monoid (Control.Exitcode.ExitcodeT f e a) instance Data.Functor.Extend.Extend f => Data.Functor.Extend.Extend (Control.Exitcode.ExitcodeT f e) instance (Data.Functor.Classes.Eq1 f, GHC.Classes.Eq e, GHC.Classes.Eq a) => GHC.Classes.Eq (Control.Exitcode.ExitcodeT f e a) instance (Data.Functor.Classes.Eq1 f, GHC.Classes.Eq e) => Data.Functor.Classes.Eq1 (Control.Exitcode.ExitcodeT f e) instance (Data.Functor.Classes.Ord1 f, GHC.Classes.Ord e, GHC.Classes.Ord a) => GHC.Classes.Ord (Control.Exitcode.ExitcodeT f e a) instance (Data.Functor.Classes.Ord1 f, GHC.Classes.Ord e) => Data.Functor.Classes.Ord1 (Control.Exitcode.ExitcodeT f e) instance (Data.Functor.Classes.Show1 f, GHC.Show.Show e, GHC.Show.Show a) => GHC.Show.Show (Control.Exitcode.ExitcodeT f e a) instance (Data.Functor.Classes.Show1 f, GHC.Show.Show e) => Data.Functor.Classes.Show1 (Control.Exitcode.ExitcodeT f e) instance Data.Foldable.Foldable f => Data.Foldable.Foldable (Control.Exitcode.ExitcodeT f e) instance Data.Traversable.Traversable f => Data.Traversable.Traversable (Control.Exitcode.ExitcodeT f e) instance Control.Monad.IO.Class.MonadIO f => Control.Monad.IO.Class.MonadIO (Control.Exitcode.ExitcodeT f e) instance Control.Monad.Reader.Class.MonadReader r f => Control.Monad.Reader.Class.MonadReader r (Control.Exitcode.ExitcodeT f e) instance Control.Monad.Writer.Class.MonadWriter w f => Control.Monad.Writer.Class.MonadWriter w (Control.Exitcode.ExitcodeT f e) instance Control.Monad.State.Class.MonadState s f => Control.Monad.State.Class.MonadState s (Control.Exitcode.ExitcodeT f e) instance Control.Monad.Error.Class.MonadError e f => Control.Monad.Error.Class.MonadError e (Control.Exitcode.ExitcodeT f e') instance Control.Monad.RWS.Class.MonadRWS r w s f => Control.Monad.RWS.Class.MonadRWS r w s (Control.Exitcode.ExitcodeT f e) instance Control.Monad.Cont.Class.MonadCont f => Control.Monad.Cont.Class.MonadCont (Control.Exitcode.ExitcodeT f e) instance GHC.Base.Functor f => Data.Bifunctor.Bifunctor (Control.Exitcode.ExitcodeT f) instance Data.Foldable.Foldable f => Data.Bifoldable.Bifoldable (Control.Exitcode.ExitcodeT f) instance Data.Traversable.Traversable f => Data.Bitraversable.Bitraversable (Control.Exitcode.ExitcodeT f)