relude
uses PVP Versioning.
The changelog is available on GitHub.
- Minor documentation changes.
-
#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 ofrelude
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
andinverseMap
functions that previously were introduced in theRelude.Extra.Enum
module.Relude.Enum
module created that is exported in the mainRelude
module by default.Migration guide: If you were using any of these functions you can now remove
Relude.Extra.Enum
from your imports and explicitmixins
section as they are available for you with theRelude
module. -
Remove the
Eq
constraint onuniverseNonEmpty
-
#269: Remove the
Relude.Extra.Validation
module.Migration guide: If you use
Relude.Extra.Validation
in you project you need to:-
Add
validation-selective
into thebuild-depends
section of your.cabal
file. -
Change imports of
Relude.Extra.Validation
toValidation
:-- Was: import Relude.Extra.Validation (Validation (..), ..) -- Became: import Validation (Validation (..), ..)
-
-
#346, #347: Reimplement
ordNub
throughnubOrd
fromcontainers
. AddordNubOn
,intNub
andintNubOn
functions. -
#327: Add
infinitely
as more strictly typedforever
. -
#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 frombase
. -
#309: Reexport
span
fromData.List
. -
#319: Implement
partitionWith
. -
#307: Add
foldr1
toFoldable1
. -
#316: Add
average
andaverage1
— efficient functions for finding average on foldable structures. -
#306: Add
maximumOn1
andminimumOn1
toFoldable1
. -
#301: Add
traceShowWith
toRelude.Debug
. -
Updates to
relude
-specific.hlint
rules.
Thanks @googleson78, @sushi-shi, @rektrex, @aleator, @mjgpy3, @dalpd, @Bodigrim for helping with this release!
-
#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'
fromData.List
. -
#256: Make
cycle
total function. -
#233: Add
etaReaderT
toRelude.Monad.Trans
to help with performance. -
#294: Add
atomicModifyIORef_
andatomicModifyIORef'_
. -
#293: Add
memptyIfFalse
andmemptyIfTrue
functions. -
Reexport
NonEmpty
functions fromRelude.List.NonEmpty
instead ofRelude.List.Reexport
. -
#239: Reexport more STM functions that work with
TMVar
fromRelude.Lifted.Concurrent
. -
#227: Create
Relude.Extra
module -
#228: Add
universeNonEmpty
function. -
#249: Breaking change: Fix infix of the
Relude.Extra.Lens
(^.)
operator. Change it toinfixl 8
. -
Reexport partial
read
fromRelude.Unsafe
for consistency. -
#244: Remove deprecated functions:
prec
,dupe
andmapBoth
.Migration rules:
prec
: useprev
insteaddupe
: usedup
insteadmapBoth
: usebimapBoth
instead
-
#246: Deprecate
Relude.Extra.Validation
in favour ofvalidation-selective
Migration rules: If you use
Relude.Extra.Validation
in you project you need to:-
Add
validation-selective
into thebuild-depends
section of your.cabal
file. -
Change imports of
Relude.Extra.Validation
toValidation
:-- Was: import Relude.Extra.Validation (Validation (..), ..) -- Became: import Validation (Validation (..), ..)
-
-
#196: Deprecate
mapToFst
andmapToSnd
. IntroducetoFst
andtoSnd
inRelude.Extra.Tuple
as shorter aliases formapToFst
. ImplementfmapToFst
andfmapToSnd
. Add more HLint rules forRelude.Extra.Tuple
functions.Migration rules:
- Replace
mapToFst
withtoFst
- Replace
mapToSnd
withtoSnd
- You can now use
fmapToFst
andfmapToSnd
instead of[f]map (mapToFst f)
and[f]map (mapToSnd f)
- Replace
-
#286: Breaking change:
readEither
is not polymorphic over the first argument anymore. Now it takesString
.Migration rules: Use one of the conversion function from the
Relude.String.Conversion
module to covert your old input value intoString
.For example, if you had
readEither @Text @Int myText
Now it should become:
readEither @Int (toString myText)
-
#281: Move
One
property tests fromdoctest
tohedgehog
. Significant test time boost. -
#264: Support Dhall-16.0.0 in HLint rules.
-
#171: Add custom type errors to various functions and instances.
head
,tail
,last
,init
words
,unwords
,lines
,unlines
error
ToText
,ToLText
,ToString
instances for bytestringsFoldable1
instance for ordinary listsMonad
instance forValidation
-
#164: Reexport
ShortByteString
,toShort
/fromShort
functions. (by @vrom911) -
#168, #197: Improve documentation significantly (more and better examples, better wording). (by @chshersh, @vrom911, @Cmdv)
-
#167: Rename functions (and deprecate old versions):
prec
toprev
dupe
todup
-
#201: Implement
!!?
as a safe equivalent of!!
that returns aMaybe
. (by @kutyel) -
#203: Implement the
guarded
combinator. (by @JonathanLorimer) -
#174: Implement
bimapBoth
inRelude.Extra.Tuple
module, markmapBoth
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
andSemigroup
instances for theValidation
type. (by @mauriciofierrom) -
#156: Implement helper type-level functions in
Relude.Extra.Type
. (by @TheMatten) -
#165: Re-export
GHC.Float.atan2
. (by @ethercrow) -
#155: Implement
foldlSC
— short-circuting list fold — inRelude.Extra.Foldable
. (by @josephcsible) -
#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
, andanyM
in terms of&&^
and||^
- Use
foldr
instead of explicit recursion andtoList
- Use
mapToFst
instead ofzip
to improve list fusion ininverseMap
- Implement
foldMap1
forNonEmpty
in terms offoldr
- Use
$>
instead of*>
andpure
where possible - Implement
asumMap
andfoldMapA
by coercingfoldMap
- Return Failure early in
<*
and*>
too
(by @josephcsible)
- Breaking change: Reorder type parameters to
-
#187: Remove
tasty
andtasty-hedgehog
dependencies and their redundant imports. (by @dalpd)
- #127:
Implement
Relude.Extra.Lens
module. - #125:
Moved many numerical functions and types in
Relude.Numeric
. ReexporttoIntegralSized
fromData.Bits
. AddintegerToBounded
andintegerToNatural
inRelude.Numeric
. - #121:
Reexport
Ap
fromData.Monoid
. Change definition offoldMapA
to useAp
. - #129:
Add
appliedTo
andchainedTo
as named versions of operators=<<
and<**>
. - #138:
Add
RealFloat
toRelude.Numeric
. - #144:
Add
traverseToSnd
and friends toRelude.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.
- #70:
Reexport
Contravariant
for GHC >= 8.6.1. - #103:
Drop
utf8-string
dependency and improve performance of conversion functions. - #98:
Reexport
Bifoldable
related stuff frombase
. - #99:
Reexport
Bitraversable
related stuff frombase
. - #100:
Add
Relude.Extra.Validation
withValidation
data type. - #89:
Add
Relude.Extra.Type
module containing atypeName
function. - #92
Add
Relude.Extra.Tuple
module, containingdupe
,mapToFst
,mapToSnd
, andmapBoth
functions. - #97:
Add
(&&^)
and(||^)
operators. - #81:
Add
asumMap
toFoldable
functions. - #80:
Add hlint rules for
whenLeft
,whenLeftM
,whenRight
andwhenRightM
. - #79:
Add HLint rules for
One
typeclass. - Remove
openFile
andhClose
. - #83:
Make documentation for
nub
functions prettier. - #109: Use Dhall v3.0.0 for hlint file generation.
-
#41: Add
Foldable1
. -
#63: Remove
Print
typeclass. Addput[L]BS[Ln]
functions.trace
functions now takeString
as argument instead ofText
.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 overPrint
typeclass anymore. -
#66: Export
(>>>)
and(<<<)
fromControl.Category
. -
#59: Introduce
flap
function and its operator version??
. -
#64: Improve performance of functions from
Foldable1
. Addfoldl1'
function. -
Reexport
uncons
frombase
. -
Rewrite
die
implementation to usedie
frombase
. -
#19: Rewrite
.hlint.yaml
to Dhall. -
Move
stdin
- andstdout
-related functions to new moduleRelude.Lifted.Terminal
. -
#67: Add HLint rules for
put*
functions. -
#22:
readFile
,writeFile
andappendFile
now work withString
. Add lifted version ofhClose
. AddreadFile
,writeFile
andappendFile
alternatives forText
andByteString
. -
#61: Add
under2
andunderF2
functions toRelude.Extra.Newtype
. -
#60: Add
hoistMaybe
andhoistEither
functions.
- #43:
Implement
Relude.Extra.Newtype
module. - #46: Add a function that returns its own name.
- #48:
Export
<&>
frombase
. Also reexportfromLeft
andfromRight
frombase
where possible. - #49: Speed up and refactor property tests.
- #54:
Improve documentation.
Add more examples to documentation and more tests.
Reexport
withReader
andwithReaderT
. RemovesafeHead
. RenameRelude.List.Safe
toRelude.List.NonEmpty
.
- #44: Implement parser deriviation from pretty-printers.
- #7:
Remove
Container.Class.Container
. ExportFoldable
. - #2:
Remove
microlens
from dependencies. - #10:
Remove
VarArg
module. - #9:
Remove
safe-exceptions
from dependencies. ReexportException
andSomeException
fromControl.Exception
instead. - #11:
Remove
TypeOps
module andtype-operators
dependency. - #13:
Remove
list
,getContents
,interact
,getArgs
,note
functions. RemoveLifted.ST
module. RenameLifted.Env
toLifted.Exit
. - #16:
Rename
whenLeft
,whenRight
,whenLeftM
,whenRightM
towhenLeft_
andwhenRight_
,whenLeftM_
andwhenRightM_
. AddwhenLeft
,whenRight
,whenLeftM
,whenRightM
which return the value. - #18:
Add
LazyStrict
type class for conversions. map
is notfmap
anymore. Reexportmap
fromData.List
- #12:
Remove
liquid-haskell
support. - #20:
Add
viaNonEmpty
function. - #21:
Add
MonadFail
instance forEither
. - #17:
Add
foldMapA
andfoldMapM
functions. - #4:
Rename package to
Relude
. - #14:
Add
Relude.Extra.*
modules which are not exported by default but have useful functions. - #8:
Introduce
StaticMap
andDynamicMap
type classes as universal interface for Map-like structures.