| Copyright | (c) 2022 Dmitrii Kovanikov |
|---|---|
| License | MPL-2.0 |
| Maintainer | Dmitrii Kovanikov <[email protected]> |
| Stability | Experimental |
| Portability | Portable |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
Iris.App
Description
The application monad — CliApp.
Many functions in Iris are polymorphic over any monad that has the MonadReader constraint.
Implement your own application monad as a newtype wrapper around CliApp in
the following way.
newtype App a = App
{ unApp :: Iris.CliApp MyOptions MyEnv a
} deriving newtype
( Functor
, Applicative
, Monad
, MonadIO
, MonadUnliftIO
, MonadReader (Iris.CliEnv MyOptions MyEnv)
)
Since: 0.0.0.0
Documentation
newtype CliApp cmd appEnv a Source #
Main monad for your CLI application.
The type variables are:
cmd: the data type for your CLI argumentsappEnv: custom environment for your application (can be just()if you don't need one)a: the value inside the monadic context
Since: 0.0.0.0
Instances
| MonadIO (CliApp cmd appEnv) Source # | Since: 0.0.0.0 |
| Applicative (CliApp cmd appEnv) Source # | Since: 0.0.0.0 |
Defined in Iris.App Methods pure :: a -> CliApp cmd appEnv a # (<*>) :: CliApp cmd appEnv (a -> b) -> CliApp cmd appEnv a -> CliApp cmd appEnv b # liftA2 :: (a -> b -> c) -> CliApp cmd appEnv a -> CliApp cmd appEnv b -> CliApp cmd appEnv c # (*>) :: CliApp cmd appEnv a -> CliApp cmd appEnv b -> CliApp cmd appEnv b # (<*) :: CliApp cmd appEnv a -> CliApp cmd appEnv b -> CliApp cmd appEnv a # | |
| Functor (CliApp cmd appEnv) Source # | Since: 0.0.0.0 |
| Monad (CliApp cmd appEnv) Source # | Since: 0.0.0.0 |
| MonadUnliftIO (CliApp cmd appEnv) Source # | Since: 0.0.0.0 |
| MonadReader (CliEnv cmd appEnv) (CliApp cmd appEnv) Source # | Since: 0.0.0.0 |