8547a75a

By: Greg Pfeil <greg@technomadic.org>

Add `CommutativeT` and other transformer instances

This is a breaking change.

- add `CommutativeT`
- add duoidal transformer instances for `IdentityT`, `MaybeT` and `ReaderT`.
- add `filterM` / `filterM'` operations to `Control.Duoidal`
- add (`p`|`s`)`fold`(`Map`) to `Data.Duoid`
- add dependency on barbies for duoidal-transformers
- add dependency on newtype package (and add `Newtype` instances)
- extract commutative monoid / monad to their own modules
- a lot of refactoring to use newtype ops & deriving strategies
- get rid of `Control.Duoidal.Trans.Orphans` (the instances are now in
  `Control.Duoidal.Trans.Class`)

Suite timing

Time to Start Worker time Duration Time to finish
Config 0s 0s 0s 1s
Eval 1s 2m13s 2m13s 2m14s
Build 37m17s 12m53s - -
Test - - - -
Deploy - - - -
Suite 0s 15m08s - -

Timeline

0s1m2m38m43m46m47m50m51m52m53m54m55m56m57m