Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data ExitcodeT f a
- type Exitcode a = ExitcodeT Identity a
- type ExitcodeT0 f = ExitcodeT f ()
- type Exitcode0 = Exitcode ()
- exitsuccess :: Applicative f => a -> ExitcodeT f a
- exitsuccess0 :: Applicative f => ExitcodeT0 f
- exitfailure0 :: Applicative f => Int -> ExitcodeT0 f
- fromExitCode :: Functor f => f ExitCode -> ExitcodeT0 f
- fromExitCode' :: ExitCode -> Exitcode0
- fromExitCodeValue :: Applicative f => Int -> a -> ExitcodeT f a
- fromExitCodeValue' :: Applicative f => Int -> ExitcodeT0 f
- runExitcode :: ExitcodeT f a -> f (Either Int a)
- exitCode :: (Functor f, Functor g) => Iso (f ExitCode) (g ExitCode) (ExitcodeT0 (MaybeT f)) (ExitcodeT0 (MaybeT g))
- _ExitFailure :: Prism' Exitcode0 Int
- _ExitSuccess :: Prism (Exitcode a) (Exitcode b) a b
Types
An exit code status where failing with a value `0` cannot be represented.
Transformer for either a non-zero exit code (Int
) or a value :: a
.
Instances
MMonad ExitcodeT Source # | |
MonadTrans ExitcodeT Source # | |
Defined in Control.Exitcode | |
MonadRWS r w s f => MonadRWS r w s (ExitcodeT f) Source # | |
Defined in Control.Exitcode | |
MonadReader r f => MonadReader r (ExitcodeT f) Source # | |
MonadState s f => MonadState s (ExitcodeT f) Source # | |
MonadError e f => MonadError e (ExitcodeT f) Source # |
|
Defined in Control.Exitcode throwError :: e -> ExitcodeT f a # catchError :: ExitcodeT f a -> (e -> ExitcodeT f a) -> ExitcodeT f a # | |
MonadWriter w f => MonadWriter w (ExitcodeT f) Source # |
|
Monad f => Monad (ExitcodeT f) Source # | |
Functor f => Functor (ExitcodeT f) Source # | |
Monad f => Applicative (ExitcodeT f) Source # | |
Defined in Control.Exitcode | |
Foldable f => Foldable (ExitcodeT f) Source # | |
Defined in Control.Exitcode fold :: Monoid m => ExitcodeT f m -> m # foldMap :: Monoid m => (a -> m) -> ExitcodeT f a -> m # foldMap' :: Monoid m => (a -> m) -> ExitcodeT f a -> m # foldr :: (a -> b -> b) -> b -> ExitcodeT f a -> b # foldr' :: (a -> b -> b) -> b -> ExitcodeT f a -> b # foldl :: (b -> a -> b) -> b -> ExitcodeT f a -> b # foldl' :: (b -> a -> b) -> b -> ExitcodeT f a -> b # foldr1 :: (a -> a -> a) -> ExitcodeT f a -> a # foldl1 :: (a -> a -> a) -> ExitcodeT f a -> a # toList :: ExitcodeT f a -> [a] # null :: ExitcodeT f a -> Bool # length :: ExitcodeT f a -> Int # elem :: Eq a => a -> ExitcodeT f a -> Bool # maximum :: Ord a => ExitcodeT f a -> a # minimum :: Ord a => ExitcodeT f a -> a # | |
Traversable f => Traversable (ExitcodeT f) Source # |
|
Defined in Control.Exitcode | |
Eq1 f => Eq1 (ExitcodeT f) Source # | |
Ord1 f => Ord1 (ExitcodeT f) Source # | |
Defined in Control.Exitcode | |
Show1 f => Show1 (ExitcodeT f) Source # | |
MonadIO f => MonadIO (ExitcodeT f) Source # | |
Defined in Control.Exitcode | |
Monad f => Apply (ExitcodeT f) Source # | |
MonadCont f => MonadCont (ExitcodeT f) Source # | |
Monad f => Alt (ExitcodeT f) Source # | |
Monad f => Bind (ExitcodeT f) Source # |
|
Extend f => Extend (ExitcodeT f) Source # |
|
MFunctor ExitcodeT Source # |
|
(Eq1 f, Eq a) => Eq (ExitcodeT f a) Source # | |
(Ord1 f, Ord a) => Ord (ExitcodeT f a) Source # | |
Defined in Control.Exitcode compare :: ExitcodeT f a -> ExitcodeT f a -> Ordering # (<) :: ExitcodeT f a -> ExitcodeT f a -> Bool # (<=) :: ExitcodeT f a -> ExitcodeT f a -> Bool # (>) :: ExitcodeT f a -> ExitcodeT f a -> Bool # (>=) :: ExitcodeT f a -> ExitcodeT f a -> Bool # | |
(Show1 f, Show a) => Show (ExitcodeT f a) Source # | |
Monad f => Semigroup (ExitcodeT f a) Source # | |
type ExitcodeT0 f = ExitcodeT f () Source #
Construction
exitsuccess :: Applicative f => a -> ExitcodeT f a Source #
Construct a succeeding exit code with the given value.
>>>
exitsuccess "abc" :: ExitcodeT Identity String
ExitcodeT (Identity (Right "abc"))
exitsuccess0 :: Applicative f => ExitcodeT0 f Source #
Construct a succeeding exit code with unit.
>>>
exitsuccess0 :: ExitcodeT0 Identity
ExitcodeT (Identity (Right ()))
exitfailure0 :: Applicative f => Int -> ExitcodeT0 f Source #
Construct a failing exit code with the given status.
If the given status is `0` then the exit code will succeed with unit.
>>>
exitfailure0 99 :: ExitcodeT0 Identity
ExitcodeT (Identity (Left 99))
fromExitCode :: Functor f => f ExitCode -> ExitcodeT0 f Source #
From base exitcode.
>>>
fromExitCode (Identity ExitSuccess)
ExitcodeT (Identity (Right ()))>>>
fromExitCode (Identity (ExitFailure 99))
ExitcodeT (Identity (Left 99))
fromExitCode' :: ExitCode -> Exitcode0 Source #
From base exitcode.
>>>
fromExitCode' ExitSuccess
ExitcodeT (Identity (Right ()))>>>
fromExitCode' (ExitFailure 99)
ExitcodeT (Identity (Left 99))>>>
fromExitCode' (ExitFailure 0)
ExitcodeT (Identity (Right ()))
fromExitCodeValue :: Applicative f => Int -> a -> ExitcodeT f a Source #
>>>
fromExitCodeValue 99 "abc" :: ExitcodeT Identity String
ExitcodeT (Identity (Left 99))>>>
fromExitCodeValue 0 "abc" :: ExitcodeT Identity String
ExitcodeT (Identity (Right "abc"))
fromExitCodeValue' :: Applicative f => Int -> ExitcodeT0 f Source #
Extraction
runExitcode :: ExitcodeT f a -> f (Either Int a) Source #
Extract either the non-zero value or the success value.
>>>
runExitcode exitsuccess0 :: Identity (Either Int ())
Identity (Right ())>>>
runExitcode (exitfailure0 99) :: Identity (Either Int ())
Identity (Left 99)
Optics
exitCode :: (Functor f, Functor g) => Iso (f ExitCode) (g ExitCode) (ExitcodeT0 (MaybeT f)) (ExitcodeT0 (MaybeT g)) Source #
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 ()))))>>>
review exitCode (exitfailure0 99) :: Identity ExitCode
Identity (ExitFailure 99)>>>
review exitCode exitsuccess0 :: Identity ExitCode
Identity ExitSuccess