Cats has been made a much better project, and is a much more enjoyable project to work on because of many of the other projects on which Cats is built. Many of these projects have had enhancements made in order to benefit Cats, for which we are grateful.

We would like to thank the maintainers of these supporting projects, and we'd encourage you to check out these projects and consider integrating them into your own projects.

  • simulacrum for minimizing type class boilerplate
  • machinist for optimizing implicit operators
  • scalacheck for property-based testing
  • discipline for encoding and testing laws
  • kind-projector for type lambda syntax
  • algebra for algebraic structures shared between Cats, Spire, and Algebird
  • tut type-checked example code makes sure that our examples stay in sync with the rest of our source

There are other libraries that aim to foster Functional Programming in the Scala programming language which Cats has a relationship to:

  • scalaz The project which directly inspires Cats. Currently Cats borrows some code directly from scalaz.
  • Structures A project very similar in nature to Cats, also derived from scalaz. The Structures and Cats projects have had a healthy relationship of sharing both ideas and code.