All Versions
33
Latest Version
Avg Release Cycle
76 days
Latest Release
1121 days ago
Changelog History
Page 2
Changelog History
Page 2

v3.0.2 Changes
May 21, 2018➕ Added
IterableLens#mapping
, anIso
that maps values
🔄 Changed
 0️⃣
TypeSafeKey.Simple
now has a default#apply
implementation
🛠 Fixed
 mapped
TypeSafeKey
instances can be used for initial put in anHMap
, and the base key can be used to retrieve them  🔀 Merged pull request fixing issue storing values at mapped
TypeSafeKey
insingletonHMap

v3.0.1 Changes
May 13, 2018🔄 Changed
ToMap
accepts anIterable
covariant inMap.Entry
RecursiveResult#invert
is also aRecursiveResult
First
/And
/Or
monoids all utilize shortcircuitingMonoid#foldLeft/foldRight
delegate toMonoid#reduceLeft/reduceRight
, respectively
➕ Added
Upcast
for safely casting up a type hierarchySetLens
, lenses operating onSet
sToArray
, for convertingIterable<A>
toA[]

v3.0.0 Changes
May 04, 2018🔄 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  👍
Into38
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 expressionlike 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:

v2.2.0
April 19, 2018 
v2.1.1 Changes
January 17, 2018🔄 Changed
 Breaking Change: Moved
Trampoline
andRecursiveResult
to better package
 Breaking Change: Moved

v2.1.0 Changes
January 14, 2018🔄 Changed
 Breaking Change:
CollectionLens#asSet
is now lawful and preserves new incoming values in the update set  Breaking Change:
IterableLens#head
is now aLens.Simple<Iterable<A>, Maybe<A>>
and is lawful  Breaking Change:
ListLens#elementAt
is now aLens.Simple<List<X>, Maybe<X>>
supporting defensive copies  Breaking Change:
MapLens#valueAt
is now aLens.Simple<Map<K,V>, Maybe<V>>
supporting defensive copies MapLens#keys
now uses defensive copies and does not alter the focused on mapMapLens#values
now uses defensive copies and does not alter the focused on mapMapLens#inverted
now uses defensive copies and does not alter the focused on mapHListLens#head
is now covariant in the tail of bothS
andT
Predicate#contraMap
is now covariant in its return typeBiPredicate#contraMap
andBiPredicate#diMapL
are now both covariant in their return types
➕ Added
Fn3#fn3
andFn4#fn4
static factory methodsFn5
throughFn8
Tuple5#into
Tuple6
throughTuple8
CoProduct6
throughCoProduct8
andChoice6
throughChoice8
CoProduct5#diverge
andChoice5#diverge
Into3
throughInto8
, for applying aTuple*
to anFn*
Times
, for successively accumulating a result by iterating a function over a value some number of timesSlide
, for "sliding" a window of some number of elements across anIterable
 👍
Either#filter
overload supporting a function fromR
toL
in the failing predicate case CollectionLens#asSet(Function)
, a proper analog ofCollectionLens#asSet()
that uses defensive copiesCollectionLens#asStream(Function)
, a proper analog ofCollectionLens#asStream()
that uses defensive copies 📚 Explicitly calling attention to all unlawful lenses in their documentation
Peek
andPeek2
, for "peeking" at the value contained inside any givenFunctor
orBifunctor
with given sideeffectsTrampoline
andRecursiveResult
for modeling primitive tailrecursive functions that can be trampolined
✂ Removed
 🚀
Either#toOptional
, deprecated in previous release  🚀
Either#fromOptional
, deprecated in previous release  🚀
sequence
overloads supportingOptional
, deprecated in previous release  🚀
OptionalLens
, deprecated in previous release  🚀
TraversableIterable
, deprecated in previous release  🚀
Traversables
, deprecated in previous release
🗄 Deprecated
CollectionLens#asSet()
in favor ofCollectionLens#asSet(Function)
CollectionLens#asStream()
in favor ofCollectionLens#asStream(Function)
 Breaking Change:

v2.0.0 Changes
November 13, 2017🔄 Changed
 Breaking Change:
java.util.Optional
replaced withMaybe
across the board Profunctor#diMap/L/R
parameters allow variance 🔀
Either#toOptional
no longer allowsnull
values in the right side, and is now in sync with CoProduct#projectB Unfoldr
allows variance on input
🛠 Fixed
CoProductN#embed
no longer eagerly invokes functionsPrependAll
now only createsO(1)
Iterable
s instead ofO(3n + 1)
➕ Added
Monad
arrives. The followingApplicative
s are now alsoMonad
:Lens
Const
Tuple*
Choice*
Identity
Either
Fn*
LambdaIterable
Maybe
SingletonHList
Force
, for forcing iteration of anIterable
to perform any sideeffectsSnoc
, for lazily appending an element to the end of anIterable
Coalesce
, for folding anIterable<Either<L, R>>
into anEither<Iterable<L>, Iterable<R>>
And
,Or
, andXor
all gainBiPredicate<Boolean, Boolean>
properties 👍
LambdaIterable
, an adapterIterable
that support lambda types Maybe
, lambda's analog ofjava.util.Optional
conforming to all the lambda typesContravariant
, an interface representing functors that map contravariantly over their parametersProfunctor
extendsContravariant
Tails
, for iterating all the tail element subsequences of anIterable
Inits
, for iterating all the initial element subsequences of anIterable
Init
, for iterating all but the last element of anIterable
CatMaybes
, for unwrapping the present values in anIterable<Maybe<A>>
to produce anIterable<A>
✂ Removed
 🚀
Fn1#then(Function<? super B, ? extends C>)
, deprecated in previous release  🚀
Fn1#adapt(Function<A, B> function)
, deprecated in previous release  🚀
Fn2#adapt(BiFunction<A, B, C> biFunction)
, deprecated in previous release
🗄 Deprecated
Traversables
and all methods therein, in favor of eitherLambdaIterable
orMaybe
TraversableOptional
in favor ofMaybe
TraversableIterable
in favor ofLambdaIterable
 👍
Sequence
overloads supportingOptional
in favor of convertingOptional
toMaybe
and then sequencing Either#toOptional
andEither#fromOptional
in favor of itsMaybe
counterparts
 Breaking Change:

v1.6.3 Changes
September 27, 2017🔄 Changed
 Loosening variance on
Fn2#fn2
andFn1#fn1
🛠 Fixed
ConcatenatingIterator
bug where deeply nestedxs
skip elements
🗄 Deprecated
Fn1#then
in favor ofFn1#andThen
(redundant)Fn1#adapt
in favor ofFn1#fn1
(rename)Fn2#adapt
in favor ofFn2#fn2
(rename)
➕ Added
 👍
Fn1#andThen
overload to support composition withBifunction
 👍
Fn1#compose
overload to support composition withBifunction
andFn2
LiftA2
to lift and apply aBifunction
to twoApplicative
sFlatten
to lazily flatten nestedIterable<Iterable<A>>
s toIterable<A>
Replicate
, shorthand composition oftake
andrepeat
Distinct
to produce anIterable
of distinct values in anotherIterable
Sort
andSortBy
for eagerly, monolithically sortingIterable
s and producingList
sIterableLens
, general lenses overIterable
Xor
, a monoid representing logical exclusiveor
 Loosening variance on

v1.6.2 Changes
August 20, 2017🔄 Changed
 ⚠ Removing need for various suppressed unchecked warnings in
ChoiceN
types HList
abstract super type loses both unnecessary parameters
🛠 Fixed
 ClassCastException
BiPredicate.flip
➕ Added
Uncons
, for destructuring anIterable
into its head and tailCompose
semigroup and monoid formed overCompletableFuture
Monoid
andSemigroup
both preserve type specificity throughflip
calls
 ⚠ Removing need for various suppressed unchecked warnings in

v1.6.1 Changes
June 17, 2017🔄 Changed
 Loosening visibility on
Traversables
methods topublic
 Loosening visibility on