cats v0.8.0 Release Notes
-
2016 October 25
๐ Version 0.8.0 is the eighth Cats release, and the first release with support for Scala 2.12 (specifically the 2.12.0-RC2 release candidate).
๐ Apart from the introduction of Scala 2.12 support, the biggest change in this release is the removal ๐ of
Xor
andXorT
. See the FAQ for information about the motivations for this change and recommendations for migration.๐ Removals and deprecations:
- #1310:
Xor
andXorT
are gone - #1370:
RecursiveTailRecM
andFree#foldMapUnsafe
are gone and stack safety is checked in the laws forMonad
- #1411:
FreeT#interpret
is deprecated in favor of the (equivalent)compile
โ Additions:
- #1382, #1415: Support for Scala 2.12.0-RC2
- #1414:
Foldable#iteratorFoldM
and lazyfoldM
implementations for many standard library instances - #1356:
append
andprepend
(and operator aliases) forNonEmptyVector
- #1327:
EitherT.fromOption
- #1388:
StateT.set
andStateT.setF
- #1392:
StateT.get
- #1325:
WriterT.lift
- #1391:
MonadReader#reader
- #1352: Macro-powered
FunctionK.lift
- #1398:
<<<
and>>>
aliases forCompose
'scompose
andandThen
- #1408:
toNestedValidated
andtoNestedValidatedNel
forEitherT
- #1399:
Order.fromComparable
- #1394:
Traverse#flatSequence
- #1417:
MonadTests#stackUnsafeMonad
laws for instances wheretailRecM
is known to be unsafe - #1411:
compile
andfoldMap
for theFree
andFreeT
companion objects
๐ New instances:
- #1319:
Order
andGroup
forBigDecimal
- #1354:
Semigroup
forIor
- #1395:
Order
forSymbol
- #1324:
PartialOrder
and other instances forBitSet
- #1324:
Eq
andPartialOrder
forEither
- #1324:
PartialOrder
,Monoid
, and other instances forFunction0
- #1324:
Monoid
and other instances forFunction1
- #1402:
Monad
,MonadCombine
,Traverse
,Order
, etc. forProd
- #1413:
MonadError
forStateT
- #1399: Instances for
java.util.UUID
Renaming and rearrangements:
- #1385: The
cats.js.std
package is nowcats.js.instances
- #1324: Many instances moved from cats-core to cats-kernel
- #1394:
Traverse#traverseM
is nowflatTraverse
๐ Miscellaneous improvements (syntax, documentation, tests):
- #1347: Consistency laws for
combineAll
andcombineAllOption
- #1324: Performance improvements for
Either
instances - #1386:
FunctionK
tests and examples now use kind-projector 0.9's polymorphic lambdas - #1410: Replace
Coproduct#run
withCoproduct#fold
- #1331: Less expensive
tailRecM
-flatMap
consistency checking - #1330: More consistent parameter-less method definitions and usage, other syntactic improvements
- #1340: New Scaladex badge
- #1416: New diagram of type classes
- #1352: API docs for
FunctionK
- #1369, #1418: New project site based on sbt-microsites
- #1259: 0.6-to-0.7 migration guide
- #1304, #1317, #1323, #1350, #1366, #1376, #1380, #1390, #1403, #1407, #1421: Other miscellaneous documentation improvements
๐ Build:
- #1310: