λ v3.2.0 Release Notes

Release Date: 2018-12-08 // over 5 years ago
  • 🔄 Changed

    • Breaking Change: Difference and Intersection no longer instances of Semigroup and moved to functions.builtin.fn2 package
    • Breaking Change: Absent moved to semigroup.builtin package
    • Breaking Change: Effect#accept() is now the required method to implement in the functional interface
    • Breaking Change: Fn0#apply() is now the required method to implement in the functional interface
    • Breaking Change: GTBy, GT, LTBy, LT, GTEBy, GTE, LTEBy, and LTE take the right-hand side first for more intuitive partial application
    • Breaking Change: Effect now returns an IO
    • RightAny overload returns Monoid
    • monoids now all fold with respect to foldMap
    • monoid folding now implicitly starts with the identity, regardless of iterable population
    • Concat monoid can now fold infinite iterables
    • 👍 all Function<? super XXX, Boolean> are now Function<? super XXX, ? extends Boolean> for better compatibility
    • Either#diverge returns a Choice3
    • Maybe is now a CoProduct2 of Unit and A
    • Fn0 now additionally implements Callable
    • CheckedRunnable is an IO<Unit>

    ➕ Added

    • Predicate#predicate static factory method
    • Product2-8 left/right rotation methods
    • Tuple2-8 specializations of left/right product rotation
    • CheckedEffect, an Effect variant that can throw checked exceptions
    • CheckedFn1#checked, convenience static factory method to aid inference
    • 🔊 LiftA3-8, higher-arity analogs to LiftA2
    • Alter, for applying an Effect to an input and returning it, presumably altered
    • Clamp, for clamping a value between two bounds
    • Between, for determining if a value is in a closed interval
    • Strong, profunctor strength
    • IO monad
    • RunAll semigroup and monoid instance for IO<A>

    🗄 Deprecated

    • AddAll semigroup, in favor of the monoid that no longer mutates any argument
    • Dyadic Either#flatMap(), in favor of Either#match