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

[ development, library, mit, shake ] [ Propose Tags ] [ Report a vulnerability ]

Re-export of Shake using well-typed paths and ReaderT. This is an early release so some things may be missing or broken but so far the conveniences have been worth it.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.0.1.0, 0.0.1.1, 0.0.1.2, 0.0.2.0, 0.0.2.1, 0.0.2.2, 0.0.3.0, 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.1.0, 0.1.2.0, 0.1.3.0, 0.1.4.0, 0.1.4.1, 0.1.5.0, 0.1.6.0, 0.1.7.0, 0.1.8.0, 0.1.9.0, 0.1.10.0, 0.2.0.0, 0.2.0.1, 0.3.0.0, 0.3.1.0, 0.3.2.0, 0.3.3.0, 0.3.3.1, 0.3.4.0
Change log ChangeLog.md
Dependencies base (>=4.7 && <5), extra, path, rio, shake [details]
License MIT
Copyright 2020 Daniel Firth
Author Daniel Firth
Maintainer dan.firth@homotopic.tech
Category development, shake
Uploaded by locallycompact at 2020-05-05T15:55:04Z
Distributions LTSHaskell:0.3.4.0, NixOS:0.3.4.0
Reverse Dependencies 2 direct, 0 indirect [details]
Downloads 8504 total (46 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2020-05-05 [all 1 reports]

Readme for shake-plus-0.0.1.2

[back to package description]

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.