Eff monad for cats - http://atnos-org.github.io/eff
Scala Shell
Latest commit 97b58cc Jan 23, 2017 @edmundnoble edmundnoble committed on GitHub Concrete asynchronous effects (#46)

README.md

eff

Build Status Join the chat at https://gitter.im/atnos-org/eff

Extensible effects are an alternative to monad transformers for computing with effects in a functional way. This library is based on the "free-er" monad and extensible effects described in Oleg Kiselyov in Freer monads, more extensible effects.

You can learn more in the User Guide:

You can also check out this presentation at flatMap Oslo 2016 (slides).

Installation

You add eff as an sbt dependency:

libraryDependencies += "org.atnos" %% "eff" % "2.2.0"

// to write types like Reader[String, ?]
addCompilerPlugin("org.spire-math" %% "kind-projector" % "0.9.3")

// to get types like Reader[String, ?] (with more than one type parameter) correctly inferred for scala 2.11.8
addCompilerPlugin("com.milessabin" % "si2712fix-plugin_2.11.8" % "1.2.0")

// to get types like Reader[String, ?] (with more than one type parameter) correctly inferred for scala 2.12.x
scalacOptions += "-Ypartial-unification"

Contributing

eff is a Typelevel project. This means we embrace pure, typeful, functional programming, and provide a safe and friendly environment for teaching, learning, and contributing as described in the Typelevel Code of Conduct.

Feel free to open an issue if you notice a bug, have an idea for a feature, or have a question about the code. Pull requests are also gladly accepted.