dojang-0.2.1: A cross-platform dotfiles manager
Safe HaskellNone
LanguageHaskell2010

Dojang.App

Description

The application monad for Dojang.

Synopsis

Documentation

data (MonadFileSystem i, MonadError IOError i, MonadIO i) => App (i :: Type -> Type) v Source #

The application monad for Dojang.

Instances

Instances details
(MonadFileSystem i, MonadError IOError i, MonadIO i) => MonadError IOError (App i) Source # 
Instance details

Defined in Dojang.App

Methods

throwError :: IOError -> App i a #

catchError :: App i a -> (IOError -> App i a) -> App i a #

Monad i => MonadReader AppEnv (App i) Source # 
Instance details

Defined in Dojang.App

Methods

ask :: App i AppEnv #

local :: (AppEnv -> AppEnv) -> App i a -> App i a #

reader :: (AppEnv -> a) -> App i a #

MonadIO i => MonadIO (App i) Source # 
Instance details

Defined in Dojang.App

Methods

liftIO :: IO a -> App i a #

Applicative i => Applicative (App i) Source # 
Instance details

Defined in Dojang.App

Methods

pure :: a -> App i a #

(<*>) :: App i (a -> b) -> App i a -> App i b #

liftA2 :: (a -> b -> c) -> App i a -> App i b -> App i c #

(*>) :: App i a -> App i b -> App i b #

(<*) :: App i a -> App i b -> App i a #

Functor i => Functor (App i) Source # 
Instance details

Defined in Dojang.App

Methods

fmap :: (a -> b) -> App i a -> App i b #

(<$) :: a -> App i b -> App i a #

Monad i => Monad (App i) Source # 
Instance details

Defined in Dojang.App

Methods

(>>=) :: App i a -> (a -> App i b) -> App i b #

(>>) :: App i a -> App i b -> App i b #

return :: a -> App i a #

(MonadFileSystem i, MonadIO i) => MonadFileSystem (App i) Source # 
Instance details

Defined in Dojang.App

(MonadFileSystem i, MonadIO i) => MonadArchitecture (App i) Source # 
Instance details

Defined in Dojang.App

(MonadFileSystem i, MonadIO i) => MonadEnvironment (App i) Source # 
Instance details

Defined in Dojang.App

(MonadFileSystem i, MonadIO i) => MonadOperatingSystem (App i) Source # 
Instance details

Defined in Dojang.App

MonadIO i => MonadLogger (App i) Source # 
Instance details

Defined in Dojang.App

Methods

monadLoggerLog :: ToLogStr msg => Loc -> LogSource -> LogLevel -> msg -> App i () #

data AppEnv Source #

The environment for the application monad.

Constructors

AppEnv 

Fields

Instances

Instances details
Show AppEnv Source # 
Instance details

Defined in Dojang.App

Monad i => MonadReader AppEnv (App i) Source # 
Instance details

Defined in Dojang.App

Methods

ask :: App i AppEnv #

local :: (AppEnv -> AppEnv) -> App i a -> App i a #

reader :: (AppEnv -> a) -> App i a #

data Loc #

Instances

Instances details
Data Loc 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Loc -> c Loc #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Loc #

toConstr :: Loc -> Constr #

dataTypeOf :: Loc -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Loc) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Loc) #

gmapT :: (forall b. Data b => b -> b) -> Loc -> Loc #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Loc -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Loc -> r #

gmapQ :: (forall d. Data d => d -> u) -> Loc -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Loc -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Loc -> m Loc #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Loc -> m Loc #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Loc -> m Loc #

Generic Loc 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Loc 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

from :: Loc -> Rep Loc x #

to :: Rep Loc x -> Loc #

Show Loc 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

showsPrec :: Int -> Loc -> ShowS #

show :: Loc -> String #

showList :: [Loc] -> ShowS #

Eq Loc 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Loc -> Loc -> Bool #

(/=) :: Loc -> Loc -> Bool #

Ord Loc 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

compare :: Loc -> Loc -> Ordering #

(<) :: Loc -> Loc -> Bool #

(<=) :: Loc -> Loc -> Bool #

(>) :: Loc -> Loc -> Bool #

(>=) :: Loc -> Loc -> Bool #

max :: Loc -> Loc -> Loc #

min :: Loc -> Loc -> Loc #

type Rep Loc 
Instance details

Defined in Language.Haskell.TH.Syntax

data LogLevel #

Instances

Instances details
Read LogLevel 
Instance details

Defined in Control.Monad.Logger

Show LogLevel 
Instance details

Defined in Control.Monad.Logger

Eq LogLevel 
Instance details

Defined in Control.Monad.Logger

Ord LogLevel 
Instance details

Defined in Control.Monad.Logger

Lift LogLevel 
Instance details

Defined in Control.Monad.Logger

Methods

lift :: Quote m => LogLevel -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => LogLevel -> Code m LogLevel #

data LogStr #

Log message builder. Use (<>) to append two LogStr in O(1).

Instances

Instances details
IsString LogStr 
Instance details

Defined in System.Log.FastLogger.LogStr

Methods

fromString :: String -> LogStr #

Monoid LogStr 
Instance details

Defined in System.Log.FastLogger.LogStr

Semigroup LogStr 
Instance details

Defined in System.Log.FastLogger.LogStr

Show LogStr 
Instance details

Defined in System.Log.FastLogger.LogStr

ToLogStr LogStr 
Instance details

Defined in System.Log.FastLogger.LogStr

Methods

toLogStr :: LogStr -> LogStr #

Eq LogStr 
Instance details

Defined in System.Log.FastLogger.LogStr

Methods

(==) :: LogStr -> LogStr -> Bool #

(/=) :: LogStr -> LogStr -> Bool #

doesManifestExist :: forall (i :: Type -> Type). (MonadFileSystem i, MonadIO i) => App i Bool Source #

ensureContext :: forall (i :: Type -> Type). (MonadFileSystem i, MonadIO i) => App i (Context (App i)) Source #

runAppWithLogging :: (MonadFileSystem i, MonadIO i) => AppEnv -> App i a -> (Loc -> LogSource -> LogLevel -> LogStr -> IO ()) -> i a Source #

Run the application monad with logging handled by the given function.

runAppWithStderrLogging :: (MonadFileSystem i, MonadIO i) => AppEnv -> App i a -> i a Source #

Run the application monad with logging to stderr.

saveManifest :: forall (i :: Type -> Type). (MonadFileSystem i, MonadIO i) => Manifest -> App i OsPath Source #