Changelog of @hackage/relude 0.7.0.0

Changelog

relude uses PVP Versioning. The changelog is available on GitHub.

0.7.0.0 — May 14, 2020

  • #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
  • #246: Deprecate Relude.Extra.Validation in favour of validation-selective

    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:

      -- 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.

0.6.0.0 — Oct 30, 2019

  • #171: Add custom type errors to various functions and instances.

    • head, tail, last, init
    • words, unwords, lines, unlines
    • error
    • ToText, ToLText, ToString instances for bytestrings
    • Foldable1 instance for ordinary lists
    • Monad instance for Validation

    (by @vrom911, @chshersh)

  • #164: Reexport ShortByteString, toShort/fromShort functions. (by @vrom911)

  • #182: Support GHC-8.8.1. (by @chshersh)

  • #168, #197: Improve documentation significantly (more and better examples, better wording). (by @chshersh, @vrom911, @Cmdv)

  • #177: Improve usage of performance pragmas. (by @chshersh)

  • #167: Rename functions (and deprecate old versions):

    • prec to prev
    • dupe to dup

    (by @Cmdv, @chshersh)

  • #192: Reexport foldMap' from Data.Foldable. (by @tfausak)

  • #201: Implement !!? as a safe equivalent of !! that returns a Maybe. (by @kutyel)

  • #203: Implement the guarded combinator. (by @JonathanLorimer)

  • #214: Add mapMaybeM function. (by @vrom911)

  • #174: Implement bimapBoth in Relude.Extra.Tuple module, mark mapBoth as DEPRECATED. (by @astynax)

  • #221: Improve documentation for the Validation module significantly. (by @chshersh)

  • #176: Implement property-based tests for Validation laws. (by @astynax)

  • #172: Add Monoid and Semigroup instances for the Validation type. (by @mauriciofierrom)

  • #156: Implement helper type-level functions in Relude.Extra.Type. (by @TheMatten)

  • #170: Implement Elem type family. (by @kutyel)

  • #165: Re-export GHC.Float.atan2. (by @ethercrow)

  • #155: Implement foldlSC — short-circuting list fold — in Relude.Extra.Foldable. (by @josephcsible)

  • #158: Support GHC-8.6.5. (by @chshersh)

  • #148: Migrate HLint rules to the latest Dhall spec. (by @vrom911)

  • #178: Made die be polymorphic in its return type. (by @ilyakooo0)

  • #162, #189, #190, #191, #193, #194, #195: Various refactorings and code improvements:

    • Breaking change: Reorder type parameters to asumMap
    • Implement andM, orM, allM, and anyM in terms of &&^ and ||^
    • Use foldr instead of explicit recursion and toList
    • Use mapToFst instead of zip to improve list fusion in inverseMap
    • Implement foldMap1 for NonEmpty in terms of foldr
    • Use $> instead of *> and pure where possible
    • Implement asumMap and foldMapA by coercing foldMap
    • Return Failure early in <* and *> too

    (by @josephcsible)

  • #187: Remove tasty and tasty-hedgehog dependencies and their redundant imports. (by @dalpd)

0.5.0 — Mar 18, 2019

  • #127: Implement Relude.Extra.Lens module.
  • #125: Moved many numerical functions and types in Relude.Numeric. Reexport toIntegralSized from Data.Bits. Add integerToBounded and integerToNatural in Relude.Numeric.
  • #121: Reexport Ap from Data.Monoid. Change definition of foldMapA to use Ap.
  • #129: Add appliedTo and chainedTo as named versions of operators =<< and <**>.
  • #138: Add RealFloat to Relude.Numeric.
  • #144: Add traverseToSnd and friends to Relude.Extra.Tuple.
  • #140: Improve text of custom compile-time error messages for elem functions.
  • #136: Cover Relude.Extra.* modules with custom HLint rules.
  • #146: Improve documentation for Relude.File file: be more explicit about system locale issues.
  • Improve documentation for One typeclass and add tests.
  • Support ghc-8.6.4 and ghc-8.4.4. Drop support for ghc-8.6.1 and ghc-8.4.3.

0.4.0 — Nov 6, 2018

  • #70: Reexport Contravariant for GHC >= 8.6.1.
  • #103: Drop utf8-string dependency and improve performance of conversion functions.
  • #98: Reexport Bifoldable related stuff from base.
  • #99: Reexport Bitraversable related stuff from base.
  • #100: Add Relude.Extra.Validation with Validationdata type.
  • #89: Add Relude.Extra.Type module containing a typeName function.
  • #92 Add Relude.Extra.Tuple module, containing dupe, mapToFst, mapToSnd, and mapBoth functions.
  • #97: Add (&&^) and (||^) operators.
  • #81: Add asumMap to Foldable functions.
  • #80: Add hlint rules for whenLeft, whenLeftM, whenRight and whenRightM.
  • #79: Add HLint rules for One typeclass.
  • Remove openFile and hClose.
  • #83: Make documentation for nub functions prettier.
  • #109: Use Dhall v3.0.0 for hlint file generation.

0.3.0

  • #41: Add Foldable1.

  • #63: Remove Print typeclass. Add put[L]BS[Ln] functions. trace functions now take String as argument instead of Text.

    Important: this is a breaking change. If you used polymorphic putStrLn you need to remove type application or switch to one of the monomorphic functions. Also, you can't abstract over Print typeclass anymore.

  • #66: Export (>>>) and (<<<) from Control.Category.

  • #59: Introduce flap function and its operator version ??.

  • #64: Improve performance of functions from Foldable1. Add foldl1' function.

  • Reexport uncons from base.

  • Rewrite die implementation to use die from base.

  • #19: Rewrite .hlint.yaml to Dhall.

  • Move stdin- and stdout-related functions to new module Relude.Lifted.Terminal.

  • #67: Add HLint rules for put* functions.

  • #22: readFile, writeFile and appendFile now work with String. Add lifted version of hClose. Add readFile, writeFile and appendFile alternatives for Text and ByteString.

  • #61: Add under2 and underF2 functions to Relude.Extra.Newtype.

  • #60: Add hoistMaybe and hoistEither functions.

0.2.0

  • #43: Implement Relude.Extra.Newtype module.
  • #46: Add a function that returns its own name.
  • #48: Export <&> from base. Also reexport fromLeft and fromRight from base where possible.
  • #49: Speed up and refactor property tests.
  • #54: Improve documentation. Add more examples to documentation and more tests. Reexport withReader and withReaderT. Remove safeHead. Rename Relude.List.Safe to Relude.List.NonEmpty.

0.1.1

  • #44: Implement parser deriviation from pretty-printers.

0.1.0

  • #7: Remove Container.Class.Container. Export Foldable.
  • #2: Remove microlens from dependencies.
  • #10: Remove VarArg module.
  • #9: Remove safe-exceptions from dependencies. Reexport Exception and SomeException from Control.Exception instead.
  • #11: Remove TypeOps module and type-operators dependency.
  • #13: Remove list, getContents, interact, getArgs, note functions. Remove Lifted.ST module. Rename Lifted.Env to Lifted.Exit.
  • #16: Rename whenLeft, whenRight, whenLeftM, whenRightM to whenLeft_ and whenRight_, whenLeftM_ and whenRightM_. Add whenLeft, whenRight, whenLeftM, whenRightM which return the value.
  • #18: Add LazyStrict type class for conversions.
  • map is not fmap anymore. Reexport map from Data.List
  • #12: Remove liquid-haskell support.
  • #20: Add viaNonEmpty function.
  • #21: Add MonadFail instance for Either.
  • #17: Add foldMapA and foldMapM functions.
  • #4: Rename package to Relude.
  • #14: Add Relude.Extra.* modules which are not exported by default but have useful functions.
  • #8: Introduce StaticMap and DynamicMap type classes as universal interface for Map-like structures.