λ v3.0.0 Release Notes
Release Date: 2018-05-04 // about 6 years ago-
🔄 Changed
- Breaking Change:
Sequence
now has two more type parameters to aid in inference - Breaking Change:
Traversable#traverse
now has three more type parameters to aid in inference - Breaking Change:
Monad#zip
now forcesm a -> b
beforem a
in defaultApplicative#zip
implementation; this is only breaking for types that are sensitive to computation order (the resulting values are the same) - Breaking Change:
TypeSafeKey
is now dually parametric (single parameter analog is preserved inTypeSafeKey.Simple
) Bifunctor
is now aBoundedBifunctor
where both parameter upper bounds areObject
Peek2
now accepts the more generalBoundedBifunctor
- 👍
Identity
,Compose
, andConst
functors all have bettertoString
implementations - 👍
Into3-8
now supports functions with parameter variance HListLens#tail
is now covariant inTail
parameter- More functions now automatically deforest nested calls (
concat
cons
,cycle
,distinct
,drop
,dropwhile
,filter
,map
,reverse
,snoc
,take
,takewhile
,tail
) - 👍
Flatten
callsIterator#hasNext
less aggressively, allowing for better laziness Lens
subtypesLensLike
View
/Set
/Over
now only requireLensLike
HMap#keys
now returns aSet
HMap#values
now returns aCollection
Unfoldr
is now lazier, deferring all computations untilhasNext/next
callsPresent
is now a singleton
➕ Added
BoundedBifunctor
, aBifunctor
super type that offers upper bounds for both parametersTry
, aMonad
representing an expression-like analog oftry/catch/finally
CheckedRunnable
, theRunnable
counterpart toCheckedSupplier
that can throw checked exceptionsUnit
, the lambda analog toVoid
, except actually inhabited by a singleton instanceKleisli
, the abstract representation of aKleisli
arrow (Monad#flatMap
) as anFn1
These
, aCoProduct3
ofA
,B
, orTuple2<A,B>
Span
, for splitting anIterable
into contiguous elements matching a predicate- ✅
MagnetizeBy
andMagnetize
, for grouping elements by pairwise predicate tests Both
, for dually applying two functions and producing aTuple2
of their resultsLens#both
, for dually focusing with two lenses at onceIfThenElse
, an expression form forif
statementsCheckedRunnable
andCheckedSupplier
conversion and convenience methodsLensLike
, common capabilities that make a type usable as if it were aLens
Iso
, isomorphisms between two types (invertible functions that are also lenses)Exchange
, aProfunctor
that can extract the morphisms from anIso
HMapLens
, lenses focusing onHMap
MapLens#mappingValues(Iso)
, a lawful lens that maps the values of aj.u.Map
Under
, the inverse ofOver
forIso
- 👍
TypeSafeKey
is anIso
and supports mapping TypeSafeKey.Simple
, the single parameter version ofTypeSafeKey
Either#trying
overloads that acceptCheckedRunnable
🗄 Deprecated
- 🗄
MapLens#mappingValues(Function)
is now deprecated in favor of the overload that takes an Iso
- Breaking Change: