@hackage shake-plus0.0.2.0

Re-export of Shake using well-typed paths and ReaderT.

Shake+ - Super Powered Shake

Attempt at a batteries included Shake. We reexport replacements for the main utility functions of Shake with the following adjustments whereever possible.

  • Well-typed paths using the path
  • New type classes MonadAction,MonadUnliftAction and MonadRules with stock ReaderT transformers.
  • Text instead of String wherever it is appropriate.

Unlifting Actions is a challenge when we cross monad boundaries (from Action to Rules), and so some functions are hard coded against the RAction type, which is a hardcoded newtype ReaderT r Action a. This is annoying, but it's sufficient to add your own logging and reader lenses. It may be possible to generalize this with some unlifting contortion but so far I haven't been able to figure it out.

The main entry point ot this library is the runShakePlus function, which collapses a ReaderT r Rules () to a Rules () and passes the environment to each underlying RAction.

This is an early release and a lot of things may be missing or broken, but so far the conveniences have been worth it. Until it's stable/complete you probaly want to import qualified Development.Shake to deal with any missing parts.