cats icon indicating copy to clipboard operation
cats copied to clipboard

Lightweight, modular, and extensible library for functional programming.

Results 195 cats issues
Sort by recently updated
recently updated
newest added

For example, if `F[_]` is `Either[Throwable, *]`, there would exist 2 instances of `ApplicativeError` for `OptionT[Either[Throwable, *], *]`: ```scala ApplicativeError[OptionT[Either[Throwable, *], *], Throwable] // higher priority instance derived from `F[_]`...

We have FunctorFilter and TraverseFilter. I have in the past proposed a generalization (FunctorFlatten, later AlternativeFlatten: #1337). But it seems to me the above are actually doing something like: ```scala...

when you import: ``` cats.syntax.foldable._ ``` You got two methods which look very similar in terms in what they do: ``` .foldMap[B](f: A => B)(implicit B: Monoid[B]): B .collectFold[B](f: A...

There's some major gaps around error handling in the official docs, especially painful because the whole ecosystem relies on them - library users are often instructed to use MonadError/ApplicativeError error...

help wanted
documentation

There is no default instance for `Empty[Option[T]]` if T has no Monoid. But there is one for collections. Would it make sense to add an `Empty[Option[T]]` instance that behaves like...

IMO it is cumbersome to use `toEither.toValidated` thus I suggest to provide the same shortcuts we provide for EitherOps. Surely only some sugar but intuitively I am looking for `toValidated`...

...somehow. ``` at cats.free.FreeT.$anonfun$step$1(FreeT.scala:163) at scala.Function1.$anonfun$andThen$1(Function1.scala:85) at cats.free.FreeT.$anonfun$step$1(FreeT.scala:163) at scala.Function1.$anonfun$andThen$1(Function1.scala:85) at cats.free.FreeT.$anonfun$step$1(FreeT.scala:163) at scala.Function1.$anonfun$andThen$1(Function1.scala:85) at cats.free.FreeT.$anonfun$step$1(FreeT.scala:163) at scala.Function1.$anonfun$andThen$1(Function1.scala:85) at cats.free.FreeT.$anonfun$step$1(FreeT.scala:163) at scala.Function1.$anonfun$andThen$1(Function1.scala:85) at cats.free.FreeT.$anonfun$step$1(FreeT.scala:163) at scala.Function1.$anonfun$andThen$1(Function1.scala:85) ``` That goes on...

# Positive integers and non-empty collections Hi all. `cats` implements non-empty collections such as `NonEmptyList`. I think we might squeeze a little more out of the concept. Wouldn't it be...

When using a la carte imports, I need to `import cats.syntax.apply._` to be able to call `contramapN`, but I expected to `import cats.syntax.contravariant._`. Here's a scastie to demonstrate: https://scastie.scala-lang.org/mrdziuban/IZmraJ4BRlugdmXfeUWoLg/3

```scala def attemptOption[A](fa: F[A]): F[Option[A]] = fa.map(_.some) Option.empty[A].pure[F] ```

help wanted
low-hanging fruit