| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Control.Exitcode.Exitcode
Synopsis
- data Exitcode e (f :: Type -> Type) a
- type Exitcode' e a = Exitcode e Identity a
- newtype ExitcodeBifunctor (f :: Type -> Type) e a = ExitcodeBifunctor (Exitcode e f a)
- type ExitcodeBifunctor' e a = ExitcodeBifunctor Identity e a
- mkExitcode :: Applicative f => f e -> f NotZero -> Exitcode e f a
- mkExitcode' :: e -> NotZero -> Exitcode' e a
- mkExitSuccess :: Functor f => f a -> Exitcode e f a
- mkExitSuccess' :: a -> Exitcode' e a
- mkExitFailure :: Applicative f => f NotZero -> f e -> Exitcode e f a
- mkExitFailure' :: NotZero -> e -> Exitcode' e a
- mkExitFailure1 :: Functor f => f e -> Exitcode e f a
- mkExitFailure1' :: e -> Exitcode' e a
- mkExitFailure_1 :: Functor f => f e -> Exitcode e f a
- mkExitFailure_1' :: e -> Exitcode' e a
- fromExitCode :: Functor f => f ExitCode -> Exitcode () f ()
- fromExitCode' :: ExitCode -> Exitcode' () ()
- toExitCode :: Functor f => Exitcode () f () -> f ExitCode
- toExitCode' :: Exitcode' () () -> ExitCode
- hoistExitcode :: (forall x. f x -> g x) -> Exitcode e f a -> Exitcode e g a
- embedExitcode :: forall (g :: Type -> Type) f e a. Functor g => (forall x. f x -> Exitcode e g x) -> Exitcode e f a -> Exitcode e g a
- bimapExitcode :: forall (f :: Type -> Type) e e' a a'. Functor f => (e -> e') -> (a -> a') -> Exitcode e f a -> Exitcode e' f a'
- runExitcode :: Exitcode e f a -> f (Either (e, NotZero) a)
- maybeExitcode :: Functor f => Exitcode e f a -> f (Maybe NotZero)
- maybeExitcode' :: Exitcode' e a -> Maybe NotZero
- tryExitcode :: Exception e' => Exitcode e IO a -> Exitcode e (ExceptT e' IO) a
- liftTryExitcode :: Exception e' => IO a -> Exitcode e (ExceptT e' IO) a
- exitCode :: forall (f :: Type -> Type) (g :: Type -> Type). (Functor f, Functor g) => Iso (f ExitCode) (g ExitCode) (Exitcode () (MaybeT f) ()) (Exitcode () (MaybeT g) ())
- _Exitcode1 :: forall a a' f. Functor f => (a -> f a') -> Exitcode' a a -> f (Exitcode' a' a')
- _Exitcode1' :: forall (f :: Type -> Type) a. Traversable f => Traversal' (Exitcode a f a) (f a)
- _ExitFailure :: forall (f :: Type -> Type) e a. Traversable f => Prism' (Exitcode e f a) (f (e, NotZero))
- _ExitFailure' :: forall e a e' p f. (Choice p, Applicative f) => p (e, NotZero) (f (e', NotZero)) -> p (Exitcode' e a) (f (Exitcode' e' a))
- _ExitFailureCode :: forall (f :: Type -> Type) e a. Traversable f => Traversal' (Exitcode e f a) (f NotZero)
- _ExitFailureCode' :: forall e a f. Applicative f => (NotZero -> f NotZero) -> Exitcode' e a -> f (Exitcode' e a)
- _ExitFailureValue :: forall (f :: Type -> Type) e a. Traversable f => Traversal' (Exitcode e f a) (f e)
- _ExitFailureValue' :: forall e a e' f. Applicative f => (e -> f e') -> Exitcode' e a -> f (Exitcode' e' a)
- _ExitSuccess :: forall (f :: Type -> Type) e a. Traversable f => Prism' (Exitcode e f a) (f a)
- _ExitSuccess' :: forall e a a' p f. (Choice p, Applicative f) => p a (f a') -> p (Exitcode' e a) (f (Exitcode' e a'))
Types
data Exitcode e (f :: Type -> Type) a Source #
An exit code status where failing with a value 0 cannot be represented.
Wraps f (Either (e, NotZero) a) where the NotZero in the Left branch
is a proven non-zero integer.
Instances
| MonadRWS r w s f => MonadRWS r w s (Exitcode e f) Source # | |||||
Defined in Control.Exitcode.Exitcode | |||||
| FoldableWithIndex i f => FoldableWithIndex i (Exitcode e f) Source # |
| ||||
Defined in Control.Exitcode.Exitcode Methods ifoldMap :: Monoid m => (i -> a -> m) -> Exitcode e f a -> m # ifoldMap' :: Monoid m => (i -> a -> m) -> Exitcode e f a -> m # ifoldr :: (i -> a -> b -> b) -> b -> Exitcode e f a -> b # ifoldl :: (i -> b -> a -> b) -> b -> Exitcode e f a -> b # | |||||
| FunctorWithIndex i f => FunctorWithIndex i (Exitcode e f) Source # |
| ||||
Defined in Control.Exitcode.Exitcode | |||||
| TraversableWithIndex i f => TraversableWithIndex i (Exitcode e f) Source # |
| ||||
Defined in Control.Exitcode.Exitcode Methods itraverse :: Applicative f0 => (i -> a -> f0 b) -> Exitcode e f a -> f0 (Exitcode e f b) # | |||||
| MonadError e f => MonadError e (Exitcode e' f) Source # |
| ||||
Defined in Control.Exitcode.Exitcode Methods throwError :: e -> Exitcode e' f a # catchError :: Exitcode e' f a -> (e -> Exitcode e' f a) -> Exitcode e' f a # | |||||
| MonadReader r f => MonadReader r (Exitcode e f) Source # |
| ||||
| MonadState s f => MonadState s (Exitcode e f) Source # |
| ||||
| MonadWriter w f => MonadWriter w (Exitcode e f) Source # |
| ||||
| BindTrans (Exitcode e) Source # |
| ||||
Defined in Control.Exitcode.Exitcode | |||||
| MonadTrans (Exitcode e) Source # |
| ||||
Defined in Control.Exitcode.Exitcode | |||||
| MonadFix f => MonadFix (Exitcode e f) Source # |
| ||||
Defined in Control.Exitcode.Exitcode | |||||
| MonadIO f => MonadIO (Exitcode e f) Source # |
| ||||
Defined in Control.Exitcode.Exitcode | |||||
| Foldable f => Foldable (Exitcode e f) Source # |
| ||||
Defined in Control.Exitcode.Exitcode Methods fold :: Monoid m => Exitcode e f m -> m # foldMap :: Monoid m => (a -> m) -> Exitcode e f a -> m # foldMap' :: Monoid m => (a -> m) -> Exitcode e f a -> m # foldr :: (a -> b -> b) -> b -> Exitcode e f a -> b # foldr' :: (a -> b -> b) -> b -> Exitcode e f a -> b # foldl :: (b -> a -> b) -> b -> Exitcode e f a -> b # foldl' :: (b -> a -> b) -> b -> Exitcode e f a -> b # foldr1 :: (a -> a -> a) -> Exitcode e f a -> a # foldl1 :: (a -> a -> a) -> Exitcode e f a -> a # toList :: Exitcode e f a -> [a] # null :: Exitcode e f a -> Bool # length :: Exitcode e f a -> Int # elem :: Eq a => a -> Exitcode e f a -> Bool # maximum :: Ord a => Exitcode e f a -> a # minimum :: Ord a => Exitcode e f a -> a # | |||||
| (Eq1 f, Eq e) => Eq1 (Exitcode e f) Source # |
| ||||
| (Ord1 f, Ord e) => Ord1 (Exitcode e f) Source # |
| ||||
Defined in Control.Exitcode.Exitcode | |||||
| (Show1 f, Show e) => Show1 (Exitcode e f) Source # |
| ||||
| Traversable f => Traversable (Exitcode e f) Source # |
| ||||
Defined in Control.Exitcode.Exitcode Methods traverse :: Applicative f0 => (a -> f0 b) -> Exitcode e f a -> f0 (Exitcode e f b) # sequenceA :: Applicative f0 => Exitcode e f (f0 a) -> f0 (Exitcode e f a) # mapM :: Monad m => (a -> m b) -> Exitcode e f a -> m (Exitcode e f b) # sequence :: Monad m => Exitcode e f (m a) -> m (Exitcode e f a) # | |||||
| Monad f => Applicative (Exitcode e f) Source # |
| ||||
Defined in Control.Exitcode.Exitcode | |||||
| Functor f => Functor (Exitcode e f) Source # |
| ||||
| Monad f => Monad (Exitcode e f) Source # |
| ||||
| (NFData1 f, NFData e) => NFData1 (Exitcode e f) Source # | |||||
Defined in Control.Exitcode.Exitcode | |||||
| MonadCont f => MonadCont (Exitcode e f) Source # |
| ||||
| Monad f => Alt (Exitcode e f) Source # |
| ||||
| Monad f => Apply (Exitcode e f) Source # |
| ||||
Defined in Control.Exitcode.Exitcode | |||||
| Monad f => Bind (Exitcode e f) Source # |
| ||||
| Extend f => Extend (Exitcode e f) Source # |
| ||||
| (Monoid a, Monad f) => Monoid (Exitcode e f a) Source # |
| ||||
| (Semigroup a, Monad f) => Semigroup (Exitcode e f a) Source # |
| ||||
| Generic (Exitcode e f a) Source # | |||||
Defined in Control.Exitcode.Exitcode Associated Types
| |||||
| Show (f (Either (e, NotZero) a)) => Show (Exitcode e f a) Source # |
| ||||
| (NFData1 f, NFData e, NFData a) => NFData (Exitcode e f a) Source # | |||||
Defined in Control.Exitcode.Exitcode | |||||
| Eq (f (Either (e, NotZero) a)) => Eq (Exitcode e f a) Source # |
| ||||
| Ord (f (Either (e, NotZero) a)) => Ord (Exitcode e f a) Source # |
| ||||
Defined in Control.Exitcode.Exitcode Methods compare :: Exitcode e f a -> Exitcode e f a -> Ordering # (<) :: Exitcode e f a -> Exitcode e f a -> Bool # (<=) :: Exitcode e f a -> Exitcode e f a -> Bool # (>) :: Exitcode e f a -> Exitcode e f a -> Bool # (>=) :: Exitcode e f a -> Exitcode e f a -> Bool # | |||||
| AsExitcode (Exitcode e f a) e f a Source # |
| ||||
| AsExitcodeBifunctor (Exitcode e f a) f e a Source # |
| ||||
Defined in Control.Exitcode.Optics Methods _ExitcodeBifunctor :: Prism' (Exitcode e f a) (ExitcodeBifunctor f e a) Source # | |||||
| GetExitcode (Exitcode e f a) e f a Source # |
| ||||
Defined in Control.Exitcode.Optics | |||||
| GetExitcodeBifunctor (Exitcode e f a) f e a Source # |
| ||||
Defined in Control.Exitcode.Optics Methods getExitcodeBifunctor :: Getter (Exitcode e f a) (ExitcodeBifunctor f e a) Source # | |||||
| HasExitcode (Exitcode e f a) e f a Source # |
| ||||
| HasExitcodeBifunctor (Exitcode e f a) f e a Source # |
| ||||
Defined in Control.Exitcode.Optics Methods exitcodeBifunctor :: Lens' (Exitcode e f a) (ExitcodeBifunctor f e a) Source # | |||||
| ReviewExitcode (Exitcode e f a) e f a Source # |
| ||||
Defined in Control.Exitcode.Optics | |||||
| ReviewExitcodeBifunctor (Exitcode e f a) f e a Source # |
| ||||
Defined in Control.Exitcode.Optics Methods reviewExitcodeBifunctor :: Review (Exitcode e f a) (ExitcodeBifunctor f e a) Source # | |||||
| type Rep (Exitcode e f a) Source # | |||||
Defined in Control.Exitcode.Exitcode type Rep (Exitcode e f a) = D1 ('MetaData "Exitcode" "Control.Exitcode.Exitcode" "exitcode-0.3.0.1-IJt82AvRg4IJtJeyb1cfTm" 'True) (C1 ('MetaCons "Exitcode" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f (Either (e, NotZero) a))))) | |||||
newtype ExitcodeBifunctor (f :: Type -> Type) e a Source #
ExitcodeBifunctor reorders the type parameters of Exitcode so that
e and a are last, enabling Bifunctor, Bifoldable, and Bitraversable
instances.
Constructors
| ExitcodeBifunctor (Exitcode e f a) |
Instances
| MonadRWS r w s f => MonadRWS r w s (ExitcodeBifunctor f e) Source # | |||||
Defined in Control.Exitcode.Exitcode | |||||
| FoldableWithIndex i f => FoldableWithIndex i (ExitcodeBifunctor f e) Source # | |||||
Defined in Control.Exitcode.Exitcode Methods ifoldMap :: Monoid m => (i -> a -> m) -> ExitcodeBifunctor f e a -> m # ifoldMap' :: Monoid m => (i -> a -> m) -> ExitcodeBifunctor f e a -> m # ifoldr :: (i -> a -> b -> b) -> b -> ExitcodeBifunctor f e a -> b # ifoldl :: (i -> b -> a -> b) -> b -> ExitcodeBifunctor f e a -> b # ifoldr' :: (i -> a -> b -> b) -> b -> ExitcodeBifunctor f e a -> b # ifoldl' :: (i -> b -> a -> b) -> b -> ExitcodeBifunctor f e a -> b # | |||||
| FunctorWithIndex i f => FunctorWithIndex i (ExitcodeBifunctor f e) Source # | |||||
Defined in Control.Exitcode.Exitcode Methods imap :: (i -> a -> b) -> ExitcodeBifunctor f e a -> ExitcodeBifunctor f e b # | |||||
| TraversableWithIndex i f => TraversableWithIndex i (ExitcodeBifunctor f e) Source # | |||||
Defined in Control.Exitcode.Exitcode Methods itraverse :: Applicative f0 => (i -> a -> f0 b) -> ExitcodeBifunctor f e a -> f0 (ExitcodeBifunctor f e b) # | |||||
| MonadError e f => MonadError e (ExitcodeBifunctor f e') Source # | |||||
Defined in Control.Exitcode.Exitcode Methods throwError :: e -> ExitcodeBifunctor f e' a # catchError :: ExitcodeBifunctor f e' a -> (e -> ExitcodeBifunctor f e' a) -> ExitcodeBifunctor f e' a # | |||||
| MonadReader r f => MonadReader r (ExitcodeBifunctor f e) Source # | |||||
Defined in Control.Exitcode.Exitcode Methods ask :: ExitcodeBifunctor f e r # local :: (r -> r) -> ExitcodeBifunctor f e a -> ExitcodeBifunctor f e a # reader :: (r -> a) -> ExitcodeBifunctor f e a # | |||||
| MonadState s f => MonadState s (ExitcodeBifunctor f e) Source # | |||||
Defined in Control.Exitcode.Exitcode Methods get :: ExitcodeBifunctor f e s # put :: s -> ExitcodeBifunctor f e () # state :: (s -> (a, s)) -> ExitcodeBifunctor f e a # | |||||
| MonadWriter w f => MonadWriter w (ExitcodeBifunctor f e) Source # | |||||
Defined in Control.Exitcode.Exitcode Methods writer :: (a, w) -> ExitcodeBifunctor f e a # tell :: w -> ExitcodeBifunctor f e () # listen :: ExitcodeBifunctor f e a -> ExitcodeBifunctor f e (a, w) # pass :: ExitcodeBifunctor f e (a, w -> w) -> ExitcodeBifunctor f e a # | |||||
| Foldable f => Bifoldable (ExitcodeBifunctor f) Source # |
| ||||
Defined in Control.Exitcode.Exitcode Methods bifold :: Monoid m => ExitcodeBifunctor f m m -> m # bifoldMap :: Monoid m => (a -> m) -> (b -> m) -> ExitcodeBifunctor f a b -> m # bifoldr :: (a -> c -> c) -> (b -> c -> c) -> c -> ExitcodeBifunctor f a b -> c # bifoldl :: (c -> a -> c) -> (c -> b -> c) -> c -> ExitcodeBifunctor f a b -> c # | |||||
| Functor f => Bifunctor (ExitcodeBifunctor f) Source # |
| ||||
Defined in Control.Exitcode.Exitcode Methods bimap :: (a -> b) -> (c -> d) -> ExitcodeBifunctor f a c -> ExitcodeBifunctor f b d # first :: (a -> b) -> ExitcodeBifunctor f a c -> ExitcodeBifunctor f b c # second :: (b -> c) -> ExitcodeBifunctor f a b -> ExitcodeBifunctor f a c # | |||||
| Traversable f => Bitraversable (ExitcodeBifunctor f) Source # |
| ||||
Defined in Control.Exitcode.Exitcode Methods bitraverse :: Applicative f0 => (a -> f0 c) -> (b -> f0 d) -> ExitcodeBifunctor f a b -> f0 (ExitcodeBifunctor f c d) # | |||||
| MonadFix f => MonadFix (ExitcodeBifunctor f e) Source # | |||||
Defined in Control.Exitcode.Exitcode Methods mfix :: (a -> ExitcodeBifunctor f e a) -> ExitcodeBifunctor f e a # | |||||
| MonadIO f => MonadIO (ExitcodeBifunctor f e) Source # | |||||
Defined in Control.Exitcode.Exitcode Methods liftIO :: IO a -> ExitcodeBifunctor f e a # | |||||
| Foldable f => Foldable (ExitcodeBifunctor f e) Source # |
| ||||
Defined in Control.Exitcode.Exitcode Methods fold :: Monoid m => ExitcodeBifunctor f e m -> m # foldMap :: Monoid m => (a -> m) -> ExitcodeBifunctor f e a -> m # foldMap' :: Monoid m => (a -> m) -> ExitcodeBifunctor f e a -> m # foldr :: (a -> b -> b) -> b -> ExitcodeBifunctor f e a -> b # foldr' :: (a -> b -> b) -> b -> ExitcodeBifunctor f e a -> b # foldl :: (b -> a -> b) -> b -> ExitcodeBifunctor f e a -> b # foldl' :: (b -> a -> b) -> b -> ExitcodeBifunctor f e a -> b # foldr1 :: (a -> a -> a) -> ExitcodeBifunctor f e a -> a # foldl1 :: (a -> a -> a) -> ExitcodeBifunctor f e a -> a # toList :: ExitcodeBifunctor f e a -> [a] # null :: ExitcodeBifunctor f e a -> Bool # length :: ExitcodeBifunctor f e a -> Int # elem :: Eq a => a -> ExitcodeBifunctor f e a -> Bool # maximum :: Ord a => ExitcodeBifunctor f e a -> a # minimum :: Ord a => ExitcodeBifunctor f e a -> a # sum :: Num a => ExitcodeBifunctor f e a -> a # product :: Num a => ExitcodeBifunctor f e a -> a # | |||||
| (Eq1 f, Eq e) => Eq1 (ExitcodeBifunctor f e) Source # | |||||
Defined in Control.Exitcode.Exitcode Methods liftEq :: (a -> b -> Bool) -> ExitcodeBifunctor f e a -> ExitcodeBifunctor f e b -> Bool # | |||||
| (Ord1 f, Ord e) => Ord1 (ExitcodeBifunctor f e) Source # | |||||
Defined in Control.Exitcode.Exitcode Methods liftCompare :: (a -> b -> Ordering) -> ExitcodeBifunctor f e a -> ExitcodeBifunctor f e b -> Ordering # | |||||
| (Show1 f, Show e) => Show1 (ExitcodeBifunctor f e) Source # | |||||
Defined in Control.Exitcode.Exitcode Methods liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> ExitcodeBifunctor f e a -> ShowS # liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [ExitcodeBifunctor f e a] -> ShowS # | |||||
| Traversable f => Traversable (ExitcodeBifunctor f e) Source # |
| ||||
Defined in Control.Exitcode.Exitcode Methods traverse :: Applicative f0 => (a -> f0 b) -> ExitcodeBifunctor f e a -> f0 (ExitcodeBifunctor f e b) # sequenceA :: Applicative f0 => ExitcodeBifunctor f e (f0 a) -> f0 (ExitcodeBifunctor f e a) # mapM :: Monad m => (a -> m b) -> ExitcodeBifunctor f e a -> m (ExitcodeBifunctor f e b) # sequence :: Monad m => ExitcodeBifunctor f e (m a) -> m (ExitcodeBifunctor f e a) # | |||||
| Monad f => Applicative (ExitcodeBifunctor f e) Source # |
| ||||
Defined in Control.Exitcode.Exitcode Methods pure :: a -> ExitcodeBifunctor f e a # (<*>) :: ExitcodeBifunctor f e (a -> b) -> ExitcodeBifunctor f e a -> ExitcodeBifunctor f e b # liftA2 :: (a -> b -> c) -> ExitcodeBifunctor f e a -> ExitcodeBifunctor f e b -> ExitcodeBifunctor f e c # (*>) :: ExitcodeBifunctor f e a -> ExitcodeBifunctor f e b -> ExitcodeBifunctor f e b # (<*) :: ExitcodeBifunctor f e a -> ExitcodeBifunctor f e b -> ExitcodeBifunctor f e a # | |||||
| Functor f => Functor (ExitcodeBifunctor f e) Source # |
| ||||
Defined in Control.Exitcode.Exitcode Methods fmap :: (a -> b) -> ExitcodeBifunctor f e a -> ExitcodeBifunctor f e b # (<$) :: a -> ExitcodeBifunctor f e b -> ExitcodeBifunctor f e a # | |||||
| Monad f => Monad (ExitcodeBifunctor f e) Source # | |||||
Defined in Control.Exitcode.Exitcode Methods (>>=) :: ExitcodeBifunctor f e a -> (a -> ExitcodeBifunctor f e b) -> ExitcodeBifunctor f e b # (>>) :: ExitcodeBifunctor f e a -> ExitcodeBifunctor f e b -> ExitcodeBifunctor f e b # return :: a -> ExitcodeBifunctor f e a # | |||||
| (NFData1 f, NFData e) => NFData1 (ExitcodeBifunctor f e) Source # | |||||
Defined in Control.Exitcode.Exitcode Methods liftRnf :: (a -> ()) -> ExitcodeBifunctor f e a -> () # | |||||
| MonadCont f => MonadCont (ExitcodeBifunctor f e) Source # | |||||
Defined in Control.Exitcode.Exitcode Methods callCC :: ((a -> ExitcodeBifunctor f e b) -> ExitcodeBifunctor f e a) -> ExitcodeBifunctor f e a # | |||||
| Monad f => Alt (ExitcodeBifunctor f e) Source # |
| ||||
Defined in Control.Exitcode.Exitcode Methods (<!>) :: ExitcodeBifunctor f e a -> ExitcodeBifunctor f e a -> ExitcodeBifunctor f e a # some :: Applicative (ExitcodeBifunctor f e) => ExitcodeBifunctor f e a -> ExitcodeBifunctor f e [a] # many :: Applicative (ExitcodeBifunctor f e) => ExitcodeBifunctor f e a -> ExitcodeBifunctor f e [a] # | |||||
| Monad f => Apply (ExitcodeBifunctor f e) Source # | |||||
Defined in Control.Exitcode.Exitcode Methods (<.>) :: ExitcodeBifunctor f e (a -> b) -> ExitcodeBifunctor f e a -> ExitcodeBifunctor f e b # (.>) :: ExitcodeBifunctor f e a -> ExitcodeBifunctor f e b -> ExitcodeBifunctor f e b # (<.) :: ExitcodeBifunctor f e a -> ExitcodeBifunctor f e b -> ExitcodeBifunctor f e a # liftF2 :: (a -> b -> c) -> ExitcodeBifunctor f e a -> ExitcodeBifunctor f e b -> ExitcodeBifunctor f e c # | |||||
| Monad f => Bind (ExitcodeBifunctor f e) Source # | |||||
Defined in Control.Exitcode.Exitcode Methods (>>-) :: ExitcodeBifunctor f e a -> (a -> ExitcodeBifunctor f e b) -> ExitcodeBifunctor f e b # join :: ExitcodeBifunctor f e (ExitcodeBifunctor f e a) -> ExitcodeBifunctor f e a # | |||||
| Extend f => Extend (ExitcodeBifunctor f e) Source # | |||||
Defined in Control.Exitcode.Exitcode Methods duplicated :: ExitcodeBifunctor f e a -> ExitcodeBifunctor f e (ExitcodeBifunctor f e a) # extended :: (ExitcodeBifunctor f e a -> b) -> ExitcodeBifunctor f e a -> ExitcodeBifunctor f e b # | |||||
| (Monoid a, Monad f) => Monoid (ExitcodeBifunctor f e a) Source # | |||||
Defined in Control.Exitcode.Exitcode Methods mempty :: ExitcodeBifunctor f e a # mappend :: ExitcodeBifunctor f e a -> ExitcodeBifunctor f e a -> ExitcodeBifunctor f e a # mconcat :: [ExitcodeBifunctor f e a] -> ExitcodeBifunctor f e a # | |||||
| (Semigroup a, Monad f) => Semigroup (ExitcodeBifunctor f e a) Source # | |||||
Defined in Control.Exitcode.Exitcode Methods (<>) :: ExitcodeBifunctor f e a -> ExitcodeBifunctor f e a -> ExitcodeBifunctor f e a # sconcat :: NonEmpty (ExitcodeBifunctor f e a) -> ExitcodeBifunctor f e a # stimes :: Integral b => b -> ExitcodeBifunctor f e a -> ExitcodeBifunctor f e a # | |||||
| Generic (ExitcodeBifunctor f e a) Source # | |||||
Defined in Control.Exitcode.Exitcode Associated Types
Methods from :: ExitcodeBifunctor f e a -> Rep (ExitcodeBifunctor f e a) x # to :: Rep (ExitcodeBifunctor f e a) x -> ExitcodeBifunctor f e a # | |||||
| Show (f (Either (e, NotZero) a)) => Show (ExitcodeBifunctor f e a) Source # |
| ||||
Defined in Control.Exitcode.Exitcode Methods showsPrec :: Int -> ExitcodeBifunctor f e a -> ShowS # show :: ExitcodeBifunctor f e a -> String # showList :: [ExitcodeBifunctor f e a] -> ShowS # | |||||
| (NFData1 f, NFData e, NFData a) => NFData (ExitcodeBifunctor f e a) Source # | |||||
Defined in Control.Exitcode.Exitcode Methods rnf :: ExitcodeBifunctor f e a -> () # | |||||
| Eq (f (Either (e, NotZero) a)) => Eq (ExitcodeBifunctor f e a) Source # | |||||
Defined in Control.Exitcode.Exitcode Methods (==) :: ExitcodeBifunctor f e a -> ExitcodeBifunctor f e a -> Bool # (/=) :: ExitcodeBifunctor f e a -> ExitcodeBifunctor f e a -> Bool # | |||||
| Ord (f (Either (e, NotZero) a)) => Ord (ExitcodeBifunctor f e a) Source # | |||||
Defined in Control.Exitcode.Exitcode Methods compare :: ExitcodeBifunctor f e a -> ExitcodeBifunctor f e a -> Ordering # (<) :: ExitcodeBifunctor f e a -> ExitcodeBifunctor f e a -> Bool # (<=) :: ExitcodeBifunctor f e a -> ExitcodeBifunctor f e a -> Bool # (>) :: ExitcodeBifunctor f e a -> ExitcodeBifunctor f e a -> Bool # (>=) :: ExitcodeBifunctor f e a -> ExitcodeBifunctor f e a -> Bool # max :: ExitcodeBifunctor f e a -> ExitcodeBifunctor f e a -> ExitcodeBifunctor f e a # min :: ExitcodeBifunctor f e a -> ExitcodeBifunctor f e a -> ExitcodeBifunctor f e a # | |||||
| AsExitcode (ExitcodeBifunctor f e a) e f a Source # |
| ||||
Defined in Control.Exitcode.Optics | |||||
| AsExitcodeBifunctor (ExitcodeBifunctor f e a) f e a Source # |
| ||||
Defined in Control.Exitcode.Optics Methods _ExitcodeBifunctor :: Prism' (ExitcodeBifunctor f e a) (ExitcodeBifunctor f e a) Source # | |||||
| GetExitcode (ExitcodeBifunctor f e a) e f a Source # |
| ||||
Defined in Control.Exitcode.Optics Methods getExitcode :: Getter (ExitcodeBifunctor f e a) (Exitcode e f a) Source # | |||||
| GetExitcodeBifunctor (ExitcodeBifunctor f e a) f e a Source # |
| ||||
Defined in Control.Exitcode.Optics Methods getExitcodeBifunctor :: Getter (ExitcodeBifunctor f e a) (ExitcodeBifunctor f e a) Source # | |||||
| HasExitcode (ExitcodeBifunctor f e a) e f a Source # |
| ||||
Defined in Control.Exitcode.Optics | |||||
| HasExitcodeBifunctor (ExitcodeBifunctor f e a) f e a Source # |
| ||||
Defined in Control.Exitcode.Optics Methods exitcodeBifunctor :: Lens' (ExitcodeBifunctor f e a) (ExitcodeBifunctor f e a) Source # | |||||
| ReviewExitcode (ExitcodeBifunctor f e a) e f a Source # |
| ||||
Defined in Control.Exitcode.Optics Methods reviewExitcode :: Review (ExitcodeBifunctor f e a) (Exitcode e f a) Source # | |||||
| ReviewExitcodeBifunctor (ExitcodeBifunctor f e a) f e a Source # |
| ||||
Defined in Control.Exitcode.Optics Methods reviewExitcodeBifunctor :: Review (ExitcodeBifunctor f e a) (ExitcodeBifunctor f e a) Source # | |||||
| type Rep (ExitcodeBifunctor f e a) Source # | |||||
Defined in Control.Exitcode.Exitcode type Rep (ExitcodeBifunctor f e a) = D1 ('MetaData "ExitcodeBifunctor" "Control.Exitcode.Exitcode" "exitcode-0.3.0.1-IJt82AvRg4IJtJeyb1cfTm" 'True) (C1 ('MetaCons "ExitcodeBifunctor" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Exitcode e f a)))) | |||||
type ExitcodeBifunctor' e a = ExitcodeBifunctor Identity e a Source #
ExitcodeBifunctor specialised to Identity.
Construction
mkExitcode :: Applicative f => f e -> f NotZero -> Exitcode e f a Source #
Construct a failure exitcode with an error value and a non-zero exit code.
>>>mkExitcode (Identity 'x') (Identity nz1) :: Exitcode' Char ()Exitcode (Identity (Left ('x',NotZero True (Positive 1))))
mkExitcode' :: e -> NotZero -> Exitcode' e a Source #
mkExitcode specialised to Identity.
>>>mkExitcode' 'x' nz1 :: Exitcode' Char ()Exitcode (Identity (Left ('x',NotZero True (Positive 1))))
mkExitSuccess :: Functor f => f a -> Exitcode e f a Source #
Construct a success exitcode.
>>>mkExitSuccess (Identity "abc") :: Exitcode' () StringExitcode (Identity (Right "abc"))
mkExitSuccess' :: a -> Exitcode' e a Source #
mkExitSuccess specialised to Identity.
>>>mkExitSuccess' "abc" :: Exitcode' () StringExitcode (Identity (Right "abc"))
mkExitFailure :: Applicative f => f NotZero -> f e -> Exitcode e f a Source #
Construct a failure exitcode with a proven non-zero exit code.
>>>mkExitFailure (Identity nz1) (Identity 'x') :: Exitcode' Char ()Exitcode (Identity (Left ('x',NotZero True (Positive 1))))
mkExitFailure' :: NotZero -> e -> Exitcode' e a Source #
mkExitFailure specialised to Identity.
>>>mkExitFailure' nz1 'x' :: Exitcode' Char ()Exitcode (Identity (Left ('x',NotZero True (Positive 1))))
mkExitFailure1 :: Functor f => f e -> Exitcode e f a Source #
Construct a failure exitcode with exit code 1.
>>>mkExitFailure1 (Identity 'x') :: Exitcode' Char ()Exitcode (Identity (Left ('x',NotZero True (Positive 1))))
mkExitFailure1' :: e -> Exitcode' e a Source #
mkExitFailure1 specialised to Identity.
>>>mkExitFailure1' 'x' :: Exitcode' Char ()Exitcode (Identity (Left ('x',NotZero True (Positive 1))))
mkExitFailure_1 :: Functor f => f e -> Exitcode e f a Source #
Construct a failure exitcode with exit code -1.
>>>mkExitFailure_1 (Identity 'x') :: Exitcode' Char ()Exitcode (Identity (Left ('x',NotZero False (Positive 1))))
mkExitFailure_1' :: e -> Exitcode' e a Source #
mkExitFailure_1 specialised to Identity.
>>>mkExitFailure_1' 'x' :: Exitcode' Char ()Exitcode (Identity (Left ('x',NotZero False (Positive 1))))
fromExitCode :: Functor f => f ExitCode -> Exitcode () f () Source #
Convert from a base ExitCode. ExitFailure 0 is treated as success.
>>>fromExitCode (Identity ExitSuccess)Exitcode (Identity (Right ()))>>>fromExitCode (Identity (ExitFailure 99))Exitcode (Identity (Left ((),NotZero True (Positive 99))))>>>fromExitCode (Identity (ExitFailure 0))Exitcode (Identity (Right ()))
fromExitCode' :: ExitCode -> Exitcode' () () Source #
fromExitCode specialised to Identity.
>>>fromExitCode' ExitSuccessExitcode (Identity (Right ()))>>>fromExitCode' (ExitFailure 99)Exitcode (Identity (Left ((),NotZero True (Positive 99))))>>>fromExitCode' (ExitFailure 0)Exitcode (Identity (Right ()))
toExitCode :: Functor f => Exitcode () f () -> f ExitCode Source #
Convert an exitcode back to f ExitCode.
>>>toExitCode (mkExitSuccess (Identity ()))Identity ExitSuccess>>>toExitCode (mkExitFailure1 (Identity ()))Identity (ExitFailure 1)
toExitCode' :: Exitcode' () () -> ExitCode Source #
toExitCode specialised to Identity.
>>>toExitCode' (mkExitSuccess' ())ExitSuccess>>>toExitCode' (mkExitFailure1' ())ExitFailure 1
hoistExitcode :: (forall x. f x -> g x) -> Exitcode e f a -> Exitcode e g a Source #
Apply a natural transformation to the base functor.
>>>hoistExitcode (Just . runIdentity) (mkExitSuccess' "abc") :: Exitcode () Maybe StringExitcode (Just (Right "abc"))
embedExitcode :: forall (g :: Type -> Type) f e a. Functor g => (forall x. f x -> Exitcode e g x) -> Exitcode e f a -> Exitcode e g a Source #
Embed a natural transformation that returns an Exitcode.
>>>embedExitcode (\(Identity a) -> mkExitSuccess (Just a)) (mkExitSuccess' "abc") :: Exitcode () Maybe StringExitcode (Just (Right "abc"))>>>embedExitcode (\(Identity a) -> mkExitSuccess (Just a)) (mkExitFailure1' ()) :: Exitcode () Maybe ()Exitcode (Just (Left ((),NotZero True (Positive 1))))
bimapExitcode :: forall (f :: Type -> Type) e e' a a'. Functor f => (e -> e') -> (a -> a') -> Exitcode e f a -> Exitcode e' f a' Source #
Map both the error and success values via Bifunctor on ExitcodeBifunctor.
>>>bimapExitcode (+1) (+10) (mkExitFailure1' 5 :: Exitcode' Int Int)Exitcode (Identity (Left (6,NotZero True (Positive 1))))>>>bimapExitcode (+1) (+10) (mkExitSuccess' 5 :: Exitcode' Int Int)Exitcode (Identity (Right 15))
Extraction
runExitcode :: Exitcode e f a -> f (Either (e, NotZero) a) Source #
Extract the underlying f (Either (e, NotZero) a).
>>>runExitcode (mkExitSuccess' "abc")Identity (Right "abc")>>>runExitcode (mkExitFailure1' 'x')Identity (Left ('x',NotZero True (Positive 1)))
maybeExitcode :: Functor f => Exitcode e f a -> f (Maybe NotZero) Source #
Extract the exit code as Maybe NotZero: Nothing for success, Just n for failure.
>>>maybeExitcode (mkExitSuccess (Identity ())) :: Identity (Maybe NotZero)Identity Nothing>>>maybeExitcode (mkExitFailure1 (Identity ())) :: Identity (Maybe NotZero)Identity (Just (NotZero True (Positive 1)))
maybeExitcode' :: Exitcode' e a -> Maybe NotZero Source #
maybeExitcode specialised to Identity.
>>>maybeExitcode' (mkExitSuccess' ())Nothing>>>maybeExitcode' (mkExitFailure1' ())Just (NotZero True (Positive 1))
Exceptions
tryExitcode :: Exception e' => Exitcode e IO a -> Exitcode e (ExceptT e' IO) a Source #
Try the IO action producing the exitcode, catching exceptions into ExceptT.
liftTryExitcode :: Exception e' => IO a -> Exitcode e (ExceptT e' IO) a Source #
Lift an IO action into Exitcode (ExceptT e' IO), catching exceptions.
Optics
exitCode :: forall (f :: Type -> Type) (g :: Type -> Type). (Functor f, Functor g) => Iso (f ExitCode) (g ExitCode) (Exitcode () (MaybeT f) ()) (Exitcode () (MaybeT g) ()) Source #
Iso between f ExitCode and Exitcode () (MaybeT f) ().
ExitFailure 0 maps to MaybeT Nothing (neither success nor failure).
ExitSuccess maps to a success exitcode.
ExitFailure n (where n /= 0) maps to a failure exitcode.
>>>import Control.Monad.Trans.Maybe>>>view exitCode (Identity ExitSuccess)Exitcode (MaybeT (Identity (Just (Right ()))))>>>view exitCode (Identity (ExitFailure 99))Exitcode (MaybeT (Identity (Just (Left ((),NotZero True (Positive 99))))))>>>view exitCode (Identity (ExitFailure 0))Exitcode (MaybeT (Identity Nothing))>>>review exitCode (mkExitSuccess (MaybeT (Identity (Just ()))))Identity ExitSuccess>>>review exitCode (mkExitFailure1 (MaybeT (Identity (Just ()))))Identity (ExitFailure 1)
_Exitcode1 :: forall a a' f. Functor f => (a -> f a') -> Exitcode' a a -> f (Exitcode' a' a') Source #
Lens into the value of an Exitcode' a a, regardless of success or failure.
The exit code is preserved.
>>>over _Exitcode1 reverse (mkExitcode' "abc" nz1 :: Exitcode' String String)Exitcode (Identity (Left ("cba",NotZero True (Positive 1))))>>>over _Exitcode1 reverse (mkExitSuccess' "def")Exitcode (Identity (Right "fed"))
_Exitcode1' :: forall (f :: Type -> Type) a. Traversable f => Traversal' (Exitcode a f a) (f a) Source #
_Exitcode1 generalised to Traversable f.
>>>over _Exitcode1' (fmap reverse) (mkExitcode (Identity "abc") (Identity nz1) :: Exitcode String Identity String)Exitcode (Identity (Left ("cba",NotZero True (Positive 1))))>>>over _Exitcode1' (fmap reverse) (mkExitSuccess (Identity "def"))Exitcode (Identity (Right "fed"))
_ExitFailure :: forall (f :: Type -> Type) e a. Traversable f => Prism' (Exitcode e f a) (f (e, NotZero)) Source #
Prism into all-failure exitcodes.
>>>preview _ExitFailure (mkExitFailure1' 'x' :: Exitcode' Char ())Just (Identity ('x',NotZero True (Positive 1)))>>>preview _ExitFailure (mkExitSuccess' () :: Exitcode' Char ())Nothing
_ExitFailure' :: forall e a e' p f. (Choice p, Applicative f) => p (e, NotZero) (f (e', NotZero)) -> p (Exitcode' e a) (f (Exitcode' e' a)) Source #
Type-changing prism into the failure case, specialised to Identity.
>>>preview _ExitFailure' (mkExitFailure1' 'x' :: Exitcode' Char ())Just ('x',NotZero True (Positive 1))>>>preview _ExitFailure' (mkExitSuccess' () :: Exitcode' Char ())Nothing>>>review _ExitFailure' ('y', nz2) :: Exitcode' Char ()Exitcode (Identity (Left ('y',NotZero True (Positive 2))))
_ExitFailureCode :: forall (f :: Type -> Type) e a. Traversable f => Traversal' (Exitcode e f a) (f NotZero) Source #
Traversal into the NotZero exit code values when all elements are failures.
>>>over _ExitFailureCode' (const nz1) (mkExitFailure' nz2 'x')Exitcode (Identity (Left ('x',NotZero True (Positive 1))))
_ExitFailureCode' :: forall e a f. Applicative f => (NotZero -> f NotZero) -> Exitcode' e a -> f (Exitcode' e a) Source #
_ExitFailureCode specialised to Identity.
_ExitFailureValue :: forall (f :: Type -> Type) e a. Traversable f => Traversal' (Exitcode e f a) (f e) Source #
Traversal into the error values when all elements are failures.
>>>over _ExitFailureValue' (const 'y') (mkExitFailure1' 'x')Exitcode (Identity (Left ('y',NotZero True (Positive 1))))>>>over _ExitFailureValue' (const 'y') (mkExitSuccess' () :: Exitcode' Char ())Exitcode (Identity (Right ()))
_ExitFailureValue' :: forall e a e' f. Applicative f => (e -> f e') -> Exitcode' e a -> f (Exitcode' e' a) Source #
_ExitFailureValue specialised to Identity.
_ExitSuccess :: forall (f :: Type -> Type) e a. Traversable f => Prism' (Exitcode e f a) (f a) Source #
Prism into all-success exitcodes.
>>>preview _ExitSuccess (mkExitSuccess' "abc" :: Exitcode' () String)Just (Identity "abc")>>>preview _ExitSuccess (mkExitFailure1' () :: Exitcode' () String)Nothing
_ExitSuccess' :: forall e a a' p f. (Choice p, Applicative f) => p a (f a') -> p (Exitcode' e a) (f (Exitcode' e a')) Source #
_ExitSuccess specialised to Identity.
>>>preview _ExitSuccess' (mkExitSuccess' "abc" :: Exitcode' () String)Just "abc">>>preview _ExitSuccess' (mkExitFailure1' () :: Exitcode' () String)Nothing