cats
                                
                                
                                
                                    cats copied to clipboard
                            
                            
                            
                        Lightweight, modular, and extensible library for functional programming.
The current implementation of `partitionEither` requires `Foldable` and `Alternative` (`Applicative` + `MonoidK`). These requirements mean that, for example, `SortedMap[K, *]` can't be partitioned! This is surprising, since there's a trivial...
Cats Effect has an unfortunate problem with `Parallel` in that it defines a more primitive typeclass, `Spawn`, from which `Parallel` can be derived. The most intuitive user experience is that...
[`cats-time`](https://github.com/typelevel/cats-time) is a microlibrary that implements instances of kernel typeclasses, such as `Show`, `Ord`, `Eq`, or `Hash`, for the classes of the `java.time` package. This package was introduced in version...
This ties into #1935, but also #2400 and #1932. I think we could do a lot better with the `Alternative` hierarchy and the `Decidable` PR shows, it might need some...
As a continuation of #1713 and #1492. I am working on a PR ```scala /** * This is an endofunctor in the category of endofunctors in `Skal`. * * `Skal`...
in `FlatMap`, you'll find the following implementation for various functions: ```scala @typeclass trait FlatMap[F[_]] extends Apply[F] { ... override def ap[A, B](ff: F[A => B])(fa: F[A]): F[B] = flatMap(ff)(f =>...
Doctests are a great way to provide compilable and testable example code for scaladoc. We should cover as many methods with doctests as possible. [Here is an example of PR...
Some new abstractions that provide useful and principled variations on a theme: - Slides: https://github.com/cohomolo-gy/Hulk-Smash/blob/master/Smash.pdf - Arithmetic derivation: https://github.com/emilypi/smash/tree/master/smash-core/README.md Happy to help explain and guide the implementation of these (including...
https://www.staff.ncl.ac.uk/andrey.mokhov/selective-functors.pdf ```scala trait Selective[F[_]] { def applicative: Applicative[F] // we could also extend, but that may create ambiguities // the law here is if you give `F[Right[B]` we never evaluate...
It looks like there's no scaladoc for the various Tuple\*SemigroupalOps classes - e.g. on https://typelevel.github.io/cats/api/cats/syntax/package$$apply$.html there is a link to `ApplyOps` documentation but not to `Tuple2SemigroupalOps`. And searching for `mapN`...