boots-app-0.1.0.3: Startup factories using IoC monad

Safe HaskellNone
LanguageHaskell2010

Boots.App

Synopsis

Documentation

natA :: Monad m => Factory (AppT env m) env component -> Factory m env component Source #

delayA :: MonadCatch m => AppT env m () -> Factory m env () Source #

bracketA :: MonadCatch m => AppT env m res -> (res -> AppT env m ()) -> Factory m env res Source #

data AppT cxt m a Source #

Application monad transformation.

Instances
Monad m => MonadReader cxt (AppT cxt m) Source # 
Instance details

Defined in Boots.App.Internal

Methods

ask :: AppT cxt m cxt #

local :: (cxt -> cxt) -> AppT cxt m a -> AppT cxt m a #

reader :: (cxt -> a) -> AppT cxt m a #

MonadTrans (AppT cxt) Source # 
Instance details

Defined in Boots.App.Internal

Methods

lift :: Monad m => m a -> AppT cxt m a #

Monad m => Monad (AppT cxt m) Source # 
Instance details

Defined in Boots.App.Internal

Methods

(>>=) :: AppT cxt m a -> (a -> AppT cxt m b) -> AppT cxt m b #

(>>) :: AppT cxt m a -> AppT cxt m b -> AppT cxt m b #

return :: a -> AppT cxt m a #

fail :: String -> AppT cxt m a #

Functor m => Functor (AppT cxt m) Source # 
Instance details

Defined in Boots.App.Internal

Methods

fmap :: (a -> b) -> AppT cxt m a -> AppT cxt m b #

(<$) :: a -> AppT cxt m b -> AppT cxt m a #

Applicative m => Applicative (AppT cxt m) Source # 
Instance details

Defined in Boots.App.Internal

Methods

pure :: a -> AppT cxt m a #

(<*>) :: AppT cxt m (a -> b) -> AppT cxt m a -> AppT cxt m b #

liftA2 :: (a -> b -> c) -> AppT cxt m a -> AppT cxt m b -> AppT cxt m c #

(*>) :: AppT cxt m a -> AppT cxt m b -> AppT cxt m b #

(<*) :: AppT cxt m a -> AppT cxt m b -> AppT cxt m a #

MonadIO m => MonadIO (AppT cxt m) Source # 
Instance details

Defined in Boots.App.Internal

Methods

liftIO :: IO a -> AppT cxt m a #

MonadCatch m => MonadCatch (AppT cxt m) Source # 
Instance details

Defined in Boots.App.Internal

Methods

catch :: Exception e => AppT cxt m a -> (e -> AppT cxt m a) -> AppT cxt m a #

MonadThrow m => MonadThrow (AppT cxt m) Source # 
Instance details

Defined in Boots.App.Internal

Methods

throwM :: Exception e => e -> AppT cxt m a #

MonadUnliftIO m => MonadUnliftIO (AppT cxt m) Source # 
Instance details

Defined in Boots.App.Internal

Methods

askUnliftIO :: AppT cxt m (UnliftIO (AppT cxt m)) #

withRunInIO :: ((forall a. AppT cxt m a -> IO a) -> IO b) -> AppT cxt m b #

MonadMask m => MonadMask (AppT cxt m) Source # 
Instance details

Defined in Boots.App.Internal

Methods

mask :: ((forall a. AppT cxt m a -> AppT cxt m a) -> AppT cxt m b) -> AppT cxt m b #

uninterruptibleMask :: ((forall a. AppT cxt m a -> AppT cxt m a) -> AppT cxt m b) -> AppT cxt m b #

generalBracket :: AppT cxt m a -> (a -> ExitCase b -> AppT cxt m c) -> (a -> AppT cxt m b) -> AppT cxt m (b, c) #

MonadThrow m => HasValid (AppT cxt m) Source # 
Instance details

Defined in Boots.App.Internal

Methods

invalid :: HasI18n a => a -> AppT cxt m b #

mark :: String -> AppT cxt m a -> AppT cxt m a #

(MonadIO m, HasLogger env) => MonadLogger (AppT env m) Source # 
Instance details

Defined in Boots.Factory.Logger

Methods

monadLoggerLog :: ToLogStr msg => Loc -> LogSource -> LogLevel -> msg -> AppT env m () #

(MonadIO m, HasLogger env) => MonadLoggerIO (AppT env m) Source # 
Instance details

Defined in Boots.Factory.Logger

Methods

askLoggerIO :: AppT env m (Loc -> LogSource -> LogLevel -> LogStr -> IO ()) #

(HasSalak env, Monad m) => MonadSalak (AppT env m) Source # 
Instance details

Defined in Boots.Factory.Salak

Methods

askSalak :: AppT env m SourcePack #

askReload :: AppT env m (IO ReloadResult) #

setLogF :: (String -> IO ()) -> AppT env m () #

logSalak :: String -> AppT env m () #

require :: (MonadThrow (AppT env m), FromProp (AppT env m) a) => Text -> AppT env m a #

type App cxt = AppT cxt IO Source #

Simple IO monad.

runAppT :: cxt -> AppT cxt m a -> m a Source #

Run application monad transformation.