shake-plus-0.0.1.2: Re-export of Shake using well-typed paths and ReaderT.

Safe HaskellNone
LanguageHaskell2010

Development.Shake.Plus.Core

Synopsis

Documentation

class Monad m => MonadAction m where Source #

Monads in which Actions may be embedded.

Methods

liftAction :: Action a -> m a Source #

Instances
MonadAction Action Source # 
Instance details

Defined in Development.Shake.Plus.Core

Methods

liftAction :: Action a -> Action a Source #

MonadAction (RAction r) Source # 
Instance details

Defined in Development.Shake.Plus.Core

Methods

liftAction :: Action a -> RAction r a Source #

MonadAction m => MonadAction (ReaderT r m) Source # 
Instance details

Defined in Development.Shake.Plus.Core

Methods

liftAction :: Action a -> ReaderT r m a Source #

class Monad m => MonadRules m where Source #

Methods

liftRules :: Rules a -> m a Source #

Instances
MonadRules Rules Source # 
Instance details

Defined in Development.Shake.Plus.Core

Methods

liftRules :: Rules a -> Rules a Source #

MonadRules (ShakePlus r) Source # 
Instance details

Defined in Development.Shake.Plus.Core

Methods

liftRules :: Rules a -> ShakePlus r a Source #

MonadRules m => MonadRules (ReaderT r m) Source # 
Instance details

Defined in Development.Shake.Plus.Core

Methods

liftRules :: Rules a -> ReaderT r m a Source #

newtype UnliftAction m Source #

Constructors

UnliftAction 

Fields

class MonadAction m => MonadUnliftAction m where Source #

Monads which allow their actions to be run in Action.

For the same reasons as MonadUnliftIO this is limited to ReaderT and IdentityT transformers on top of Action.

Minimal complete definition

Nothing

Methods

withRunInAction :: ((forall a. m a -> Action a) -> Action b) -> m b Source #

Instances
MonadUnliftAction Action Source # 
Instance details

Defined in Development.Shake.Plus.Core

Methods

withRunInAction :: ((forall a. Action a -> Action a) -> Action b) -> Action b Source #

MonadUnliftAction (RAction r) Source # 
Instance details

Defined in Development.Shake.Plus.Core

Methods

withRunInAction :: ((forall a. RAction r a -> Action a) -> Action b) -> RAction r b Source #

MonadUnliftAction m => MonadUnliftAction (ReaderT r m) Source # 
Instance details

Defined in Development.Shake.Plus.Core

Methods

withRunInAction :: ((forall a. ReaderT r m a -> Action a) -> Action b) -> ReaderT r m b Source #

data RAction r a Source #

Concrete Action runner, hardcoded to `ReaderT r Action a`.

Instances
MonadReader r (RAction r) Source # 
Instance details

Defined in Development.Shake.Plus.Core

Methods

ask :: RAction r r #

local :: (r -> r) -> RAction r a -> RAction r a #

reader :: (r -> a) -> RAction r a #

Monad (RAction r) Source # 
Instance details

Defined in Development.Shake.Plus.Core

Methods

(>>=) :: RAction r a -> (a -> RAction r b) -> RAction r b #

(>>) :: RAction r a -> RAction r b -> RAction r b #

return :: a -> RAction r a #

fail :: String -> RAction r a #

Functor (RAction r) Source # 
Instance details

Defined in Development.Shake.Plus.Core

Methods

fmap :: (a -> b) -> RAction r a -> RAction r b #

(<$) :: a -> RAction r b -> RAction r a #

Applicative (RAction r) Source # 
Instance details

Defined in Development.Shake.Plus.Core

Methods

pure :: a -> RAction r a #

(<*>) :: RAction r (a -> b) -> RAction r a -> RAction r b #

liftA2 :: (a -> b -> c) -> RAction r a -> RAction r b -> RAction r c #

(*>) :: RAction r a -> RAction r b -> RAction r b #

(<*) :: RAction r a -> RAction r b -> RAction r a #

MonadIO (RAction r) Source # 
Instance details

Defined in Development.Shake.Plus.Core

Methods

liftIO :: IO a -> RAction r a #

MonadThrow (RAction r) Source # 
Instance details

Defined in Development.Shake.Plus.Core

Methods

throwM :: Exception e => e -> RAction r a #

MonadUnliftAction (RAction r) Source # 
Instance details

Defined in Development.Shake.Plus.Core

Methods

withRunInAction :: ((forall a. RAction r a -> Action a) -> Action b) -> RAction r b Source #

MonadAction (RAction r) Source # 
Instance details

Defined in Development.Shake.Plus.Core

Methods

liftAction :: Action a -> RAction r a Source #

data ShakePlus r a Source #

Concrete Rules collector, hardcoded to `ReaderT r Rules a`.

Instances
MonadReader r (ShakePlus r) Source # 
Instance details

Defined in Development.Shake.Plus.Core

Methods

ask :: ShakePlus r r #

local :: (r -> r) -> ShakePlus r a -> ShakePlus r a #

reader :: (r -> a) -> ShakePlus r a #

Monad (ShakePlus r) Source # 
Instance details

Defined in Development.Shake.Plus.Core

Methods

(>>=) :: ShakePlus r a -> (a -> ShakePlus r b) -> ShakePlus r b #

(>>) :: ShakePlus r a -> ShakePlus r b -> ShakePlus r b #

return :: a -> ShakePlus r a #

fail :: String -> ShakePlus r a #

Functor (ShakePlus r) Source # 
Instance details

Defined in Development.Shake.Plus.Core

Methods

fmap :: (a -> b) -> ShakePlus r a -> ShakePlus r b #

(<$) :: a -> ShakePlus r b -> ShakePlus r a #

Applicative (ShakePlus r) Source # 
Instance details

Defined in Development.Shake.Plus.Core

Methods

pure :: a -> ShakePlus r a #

(<*>) :: ShakePlus r (a -> b) -> ShakePlus r a -> ShakePlus r b #

liftA2 :: (a -> b -> c) -> ShakePlus r a -> ShakePlus r b -> ShakePlus r c #

(*>) :: ShakePlus r a -> ShakePlus r b -> ShakePlus r b #

(<*) :: ShakePlus r a -> ShakePlus r b -> ShakePlus r a #

MonadIO (ShakePlus r) Source # 
Instance details

Defined in Development.Shake.Plus.Core

Methods

liftIO :: IO a -> ShakePlus r a #

MonadThrow (ShakePlus r) Source # 
Instance details

Defined in Development.Shake.Plus.Core

Methods

throwM :: Exception e => e -> ShakePlus r a #

MonadRules (ShakePlus r) Source # 
Instance details

Defined in Development.Shake.Plus.Core

Methods

liftRules :: Rules a -> ShakePlus r a Source #

runRAction :: MonadAction m => env -> RAction env a -> m a Source #

Run an RAction with an environment, consuming it for a result.

runShakePlus :: MonadRules m => env -> ShakePlus env a -> m a Source #

Run a ShakePlus with an environment, consuming it for some Shake Rules.