All Versions
Latest Version
Avg Release Cycle
67 days
Latest Release
1170 days ago

Changelog History
Page 1

  • v1.0.0.1 Changes

    March 15, 2021
    • ๐Ÿ“š Minor documentation changes.
  • v1.0.0.0 Changes

    March 12, 2021
    • #353: Reexport most common modules from the following libraries:

      • containers
      • unordered-containers
      • text
      • bytestring

    Now, when using relude, you don't need to add these libraries to your .cabal file to enjoy their main API. Try removing them from your .cabal file after upgrading to this version of relude to see if you still need them.

    To utilise this feature, update the mixin part of your package configuration (if you're using the mixins approach) to the following:

      mixins:   base hiding (Prelude)
              , relude (Relude as Prelude)
              , relude
    • #345: Support GHC-9.0.
    • โฌ†๏ธ Upgrade minor GHC versions to GHC-8.10.4 and GHC-8.8.4.
    • #268: Drop support of GHC-8.0.2.
    • #270: Standardise universe, universeNonEmpty and inverseMap functions that previously were introduced in the Relude.Extra.Enum module. Relude.Enum module created that is exported in the main Relude module by default.

    Migration guide: If you were using any of these functions you can now remove Relude.Extra.Enum from your imports and explicit mixins section as they are available for you with the Relude module.

    • โœ‚ Remove the Eq constraint on universeNonEmpty
    • #269: Remove the Relude.Extra.Validation module.

    Migration guide: 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 (..), ..)
    • #346, #347: Reimplement ordNub through nubOrd from containers. Add ordNubOn, intNub and intNubOn functions.
    • #327: Add infinitely as more strictly typed forever.
    • #311: Add maybeAt function โ€” the non-operator version of !!? with its arguments flipped.
    • #314: Add lifted versions of functions to work with Handle:

      • hFlush
      • hIsEOF
      • hSetBuffering
      • hGetBuffering
    • #305: Add lifted versions of functions to work with environment:

      • getArgs
      • lookupEnv
    • โž• Add lifted version of the readFile' function.

    • Reexport the BufferMode type from base.

    • #309: Reexport span from Data.List.

    • #319: Implement partitionWith.

    • #307: Add foldr1 to Foldable1.

    • #316: Add average and average1 โ€” efficient functions for finding average on foldable structures.

    • #306: Add maximumOn1 and minimumOn1 to Foldable1.

    • #301: Add traceShowWith to Relude.Debug.

    • #304, #317: Various documentation improvements.

    • โšก๏ธ Updates to relude-specific .hlint rules.

    Thanks @googleson78, @sushi-shi, @rektrex, @aleator, @mjgpy3, @dalpd, ๐Ÿš€ @Bodigrim for helping with this release!

  • v0.8.0.0 Changes

    • โž• Add infinitely as more strictly typed forever.
  • v0.7.0.0 Changes

    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

    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.
  • v0.6.0 Changes

    • #155: Implement Relude.Extra.Foldable module.
    • Re-export GHC.Float.atan2.
    • #172: Add Monoid and Semigroup instances for Validation type
    • #178: Made die be polymorphic in its return type.
  • v0.6.0.0 Changes

    October 30, 2019

    โž• 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)

    โœ… Reexport ShortByteString, toShort/fromShort functions.
    (by @vrom911)

    ๐Ÿ‘Œ Support GHC-8.8.1.
    (by @chshersh)

    ๐Ÿ‘Œ Improve documentation significantly (more and better examples, better wording).
    (by @chshersh,

    ๐Ÿ‘Œ Improve usage of performance pragmas.
    (by @chshersh)

    ๐Ÿ—„ Rename functions (and deprecate old versions):

    • prec to prev
    • dupe to dup

    (by @Cmdv, @chshersh)

    Reexport foldMap' from Data.Foldable.
    (by @tfausak)

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

    Implement the guarded combinator.
    (by @JonathanLorimer)

    โž• Add mapMaybeM function.
    (by @vrom911)

    Implement bimapBoth in Relude.Extra.Tuple module,
    ๐Ÿ—„ mark mapBoth as DEPRECATED.
    (by @astynax)

    ๐Ÿ‘Œ Improve documentation for the Validation module significantly.
    (by @chshersh)

    โœ… Implement property-based tests for Validation laws.
    (by @astynax)

    โž• Add Monoid and Semigroup instances for the Validation type.
    (by @mauriciofierrom)

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

    Implement Elem type family.
    (by @kutyel)

    Re-export GHC.Float.atan2.
    (by @ethercrow)

    Implement foldlSC โ€” short-circuting list fold โ€” in Relude.Extra.Foldable.
    (by @josephcsible)

    ๐Ÿ‘Œ Support GHC-8.6.5.
    (by @chshersh)

    ๐Ÿ‘• Migrate HLint rules to the latest Dhall spec.
    (by @vrom911)

    Made die be polymorphic in its return type.
    (by @ilyakooo0)

    ๐Ÿ”จ 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)

    โœ‚ Remove tasty and tasty-hedgehog dependencies and their redundant imports.
    (by @dalpd)

  • v0.5.0 Changes

    March 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.
  • v0.4.0 Changes

    November 06, 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.
  • v0.3.0 Changes

    September 09, 2018
    • #41: Add Foldable1.
    • #64: 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.
  • v0.2.0 Changes

    August 19, 2018
    • #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.