relude v0.7.0.0 Release Notes

Release Date: 2020-05-14 // almost 4 years ago
    • #253: Support GHC-8.10. Upgrade GHC-8.8 to 8.8.3.
    • 📚 Significant documentation improvements:
      • Add high-level description to each reexported module.
      • Add String Conversion Table.
      • Add NonEmpty lists functions tables.
      • Add @since annotations.
      • Improve README.
      • Inline some external reexports into explicit lists of exports.
      • Rewrite top-level cabal description.
    • #234: Reexport scanl1, scanr1, scanl' from Data.List.
    • #256: Make cycle total function.
    • #233: Add etaReaderT to Relude.Monad.Trans to help with performance.
    • #294: Add atomicModifyIORef_ and atomicModifyIORef'_.
    • #293: Add memptyIfFalse and memptyIfTrue functions.
    • Reexport NonEmpty functions from Relude.List.NonEmpty instead of Relude.List.Reexport.
    • #239: Reexport more STM functions that work with TMVar from Relude.Lifted.Concurrent.
    • #227: Create Relude.Extra module
    • #228: Add universeNonEmpty function.
    • #249: Breaking change: Fix infix of the Relude.Extra.Lens (^.) operator. Change it to infixl 8.
    • Reexport partial read from Relude.Unsafe for consistency.
    • #244: Remove deprecated functions: prec, dupe and mapBoth.

    Migration rules: + prec: use prev instead + dupe: use dup instead + mapBoth: use bimapBoth instead

    Migration rules: If you use Relude.Extra.Validation in you project you need to:

    1. Add `validation-selective` into the `build-depends` section of your
       `.cabal` file.
    2. Change imports of `Relude.Extra.Validation` to `Validation`:
    
       ```haskell
       -- Was:
       import Relude.Extra.Validation (Validation (..), ..)
       -- Became:
       import Validation (Validation (..), ..)
       ```
    
    • #196: Deprecate mapToFst and mapToSnd. Introduce toFst and toSnd in Relude.Extra.Tuple as shorter aliases for mapToFst. Implement fmapToFst and fmapToSnd. Add more HLint rules for Relude.Extra.Tuple functions.

    Migration rules:

    • Replace mapToFst with toFst
    • Replace mapToSnd with toSnd
    • You can now use fmapToFst and fmapToSnd instead of [f]map (mapToFst f) and [f]map (mapToSnd f)
      • #286: Breaking change: readEither is not polymorphic over the first argument anymore. Now it takes String.

    Migration rules: Use one of the conversion function from the Relude.String.Conversion module to covert your old input value into String.

    For example, if you had

      readEither @Text @Int myText
    

    Now it should become:

      readEither @Int (toString myText)
    
    • #281: Move One property tests from doctest to hedgehog. Significant test time boost.
    • #264: Support Dhall-16.0.0 in HLint rules.