-- 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.3 module Control.Exitcode -- | 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. data ExitcodeT f a type Exitcode a = ExitcodeT Identity 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 a -- | Construct a succeeding exit code with unit. -- --
-- >>> exitsuccess0 :: ExitcodeT0 Identity -- ExitcodeT (Identity (Right ())) --exitsuccess0 :: Applicative f => ExitcodeT0 f -- | 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)) --exitfailure0 :: 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 -- |
-- >>> fromExitCodeValue 99 "abc" :: ExitcodeT Identity String -- ExitcodeT (Identity (Left 99)) -- -- >>> fromExitCodeValue 0 "abc" :: ExitcodeT Identity String -- ExitcodeT (Identity (Right "abc")) --fromExitCodeValue :: Applicative f => Int -> a -> ExitcodeT f a fromExitCodeValue' :: Applicative f => Int -> ExitcodeT0 f -- | 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) --runExitcode :: ExitcodeT f a -> f (Either Int a) -- | 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 --exitCode :: (Functor f, Functor g) => Iso (f ExitCode) (g ExitCode) (ExitcodeT0 (MaybeT f)) (ExitcodeT0 (MaybeT g)) -- | A prism to exit failure. -- --
-- >>> preview _ExitFailure (exitfailure0 99) -- Just 99 -- -- >>> preview _ExitFailure exitsuccess0 -- Nothing -- -- >>> review _ExitFailure 99 -- ExitcodeT (Identity (Left 99)) --_ExitFailure :: Prism' Exitcode0 Int -- | A prism to exit success. -- --
-- >>> preview _ExitSuccess (exitfailure0 99) -- Nothing -- -- >>> preview _ExitSuccess exitsuccess0 -- Just () -- -- >>> review _ExitSuccess "abc" -- ExitcodeT (Identity (Right "abc")) --_ExitSuccess :: Prism (Exitcode a) (Exitcode b) a b instance GHC.Base.Functor f => GHC.Base.Functor (Control.Exitcode.ExitcodeT f) instance GHC.Base.Monad f => Data.Functor.Bind.Class.Apply (Control.Exitcode.ExitcodeT f) instance GHC.Base.Monad f => GHC.Base.Applicative (Control.Exitcode.ExitcodeT f) instance GHC.Base.Monad f => Data.Functor.Bind.Class.Bind (Control.Exitcode.ExitcodeT f) instance GHC.Base.Monad f => GHC.Base.Monad (Control.Exitcode.ExitcodeT f) instance GHC.Base.Monad f => Data.Functor.Alt.Alt (Control.Exitcode.ExitcodeT f) instance GHC.Base.Monad f => GHC.Base.Semigroup (Control.Exitcode.ExitcodeT f a) instance Data.Functor.Extend.Extend f => Data.Functor.Extend.Extend (Control.Exitcode.ExitcodeT f) instance (Data.Functor.Classes.Eq1 f, GHC.Classes.Eq a) => GHC.Classes.Eq (Control.Exitcode.ExitcodeT f a) instance Data.Functor.Classes.Eq1 f => Data.Functor.Classes.Eq1 (Control.Exitcode.ExitcodeT f) instance (Data.Functor.Classes.Ord1 f, GHC.Classes.Ord a) => GHC.Classes.Ord (Control.Exitcode.ExitcodeT f a) instance Data.Functor.Classes.Ord1 f => Data.Functor.Classes.Ord1 (Control.Exitcode.ExitcodeT f) instance (Data.Functor.Classes.Show1 f, GHC.Show.Show a) => GHC.Show.Show (Control.Exitcode.ExitcodeT f a) instance Data.Functor.Classes.Show1 f => Data.Functor.Classes.Show1 (Control.Exitcode.ExitcodeT f) instance Data.Foldable.Foldable f => Data.Foldable.Foldable (Control.Exitcode.ExitcodeT f) instance Data.Traversable.Traversable f => Data.Traversable.Traversable (Control.Exitcode.ExitcodeT f) instance Control.Monad.IO.Class.MonadIO f => Control.Monad.IO.Class.MonadIO (Control.Exitcode.ExitcodeT f) instance Control.Monad.Trans.Class.MonadTrans Control.Exitcode.ExitcodeT instance Control.Monad.Reader.Class.MonadReader r f => Control.Monad.Reader.Class.MonadReader r (Control.Exitcode.ExitcodeT f) instance Control.Monad.Writer.Class.MonadWriter w f => Control.Monad.Writer.Class.MonadWriter w (Control.Exitcode.ExitcodeT f) instance Control.Monad.State.Class.MonadState s f => Control.Monad.State.Class.MonadState s (Control.Exitcode.ExitcodeT f) instance Control.Monad.Error.Class.MonadError e f => Control.Monad.Error.Class.MonadError e (Control.Exitcode.ExitcodeT f) instance Control.Monad.RWS.Class.MonadRWS r w s f => Control.Monad.RWS.Class.MonadRWS r w s (Control.Exitcode.ExitcodeT f) instance Control.Monad.Cont.Class.MonadCont f => Control.Monad.Cont.Class.MonadCont (Control.Exitcode.ExitcodeT f) instance Control.Monad.Morph.MFunctor Control.Exitcode.ExitcodeT instance Control.Monad.Morph.MMonad Control.Exitcode.ExitcodeT