All Projects → typelevel → Cats Mtl

typelevel / Cats Mtl

Licence: other
cats transformer type classes.

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to Cats Mtl

Cats Stm
An STM implementation for Cats Effect
Stars: ✭ 106 (-55.46%)
Mutual labels:  monad, cats, functional-programming
Sup
Composable, purely functional healthchecks in Scala.
Stars: ✭ 138 (-42.02%)
Mutual labels:  cats, functional-programming
Canoe
Functional Telegram Bot API for Scala
Stars: ✭ 137 (-42.44%)
Mutual labels:  cats, functional-programming
Fpgo
Monad, Functional Programming features for Golang
Stars: ✭ 165 (-30.67%)
Mutual labels:  monad, functional-programming
Dunai
Classic and Arrowized Functional Reactive Programming, Reactive Programming, and Stream programming, all via Monadic Stream Functions
Stars: ✭ 115 (-51.68%)
Mutual labels:  monad, functional-programming
Test State
Scala Test-State.
Stars: ✭ 119 (-50%)
Mutual labels:  cats, functional-programming
Meow Mtl
Next Level MTL for Scala
Stars: ✭ 149 (-37.39%)
Mutual labels:  cats, functional-programming
Monadless
Syntactic sugar for monad composition in Scala
Stars: ✭ 231 (-2.94%)
Mutual labels:  monad, cats
Nine Cards V2
An Open Source Android Launcher built with Scala on Android
Stars: ✭ 181 (-23.95%)
Mutual labels:  cats, functional-programming
Functional Examples
Examples with Functional JavaScript, following Professor Frisby's course
Stars: ✭ 179 (-24.79%)
Mutual labels:  monad, functional-programming
F
Functional stuff for Python
Stars: ✭ 113 (-52.52%)
Mutual labels:  monad, functional-programming
Funcadelic.js
Functional programming and category theory for everyday JavaScript development
Stars: ✭ 183 (-23.11%)
Mutual labels:  monad, functional-programming
Masala Parser
Javascript Generalized Parser Combinators
Stars: ✭ 110 (-53.78%)
Mutual labels:  monad, functional-programming
Rubico
[a]synchronous functional programming
Stars: ✭ 133 (-44.12%)
Mutual labels:  monad, functional-programming
Functionaljava
Functional programming in Java
Stars: ✭ 1,472 (+518.49%)
Mutual labels:  monad, functional-programming
Monix
Asynchronous, Reactive Programming for Scala and Scala.js.
Stars: ✭ 1,819 (+664.29%)
Mutual labels:  cats, functional-programming
Cyclops
An advanced, but easy to use, platform for writing functional applications in Java 8.
Stars: ✭ 1,180 (+395.8%)
Mutual labels:  monad, functional-programming
Monocle
Optics library for Scala
Stars: ✭ 1,357 (+470.17%)
Mutual labels:  cats, functional-programming
Mostly Adequate Guide Chinese
函数式编程指北中文版
Stars: ✭ 2,093 (+779.41%)
Mutual labels:  monad, functional-programming
Fluture
🦋 Fantasy Land compliant (monadic) alternative to Promises
Stars: ✭ 2,249 (+844.96%)
Mutual labels:  monad, functional-programming

Cats MTL

Provides transformer typeclasses for cats' Monads, Applicatives and Functors.

You can have multiple cats-mtl transformer typeclasses in scope at once without implicit ambiguity, unlike in pre-1.0.0 cats or Scalaz 7.

Usage

libraryDependencies += "org.typelevel" %% "cats-mtl" % "1.1.1"

If your project uses ScalaJS, replace the double-% with a triple. Note that cats-mtl has an upstream dependency on cats-core version 2.x.

Cross-builds are available for Scala 2.12, 2.13, 3.0.0-M2, 3.0.0-M3, and ScalaJS major version 1.x.

If you're not sure where to start or what Cats MTL even is, please refer to the getting started guide.

Supported Classes

  • EitherT
  • Kleisli
  • IorT
  • OptionT
  • ReaderWriterStateT
  • StateT
  • WriterT

Laws

The cats-mtl-laws artifact provides Discipline-style laws for all of the type classes defined in cats-mtl. It is relatively easy to use these laws to test your own implementations of these typeclasses. Take a look here for more.

libraryDependencies += "org.typelevel" %% "cats-mtl-laws" % "1.1.1" % Test

These laws are compatible with both Specs2 and ScalaTest.

Documentation

Links:

  1. Website: typelevel.org/cats-mtl/
  2. ScalaDoc: typelevel.org/cats-mtl/api/

Related Cats links (the core):

  1. Website: typelevel.org/cats/
  2. ScalaDoc: typelevel.org/cats/api/

Community

People are expected to follow the Scala Code of Conduct when discussing cats-mtl on the Github page, Gitter channel, or other venues.

We hope that our community will be respectful, helpful, and kind. If you find yourself embroiled in a situation that becomes heated, or that fails to live up to our expectations, you should disengage and contact one of the project maintainers in private. We hope to avoid letting minor aggressions and misunderstandings escalate into larger problems.

License

All code is available to you under the MIT license, available at http://opensource.org/licenses/mit-license.php and also in the COPYING file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].