![JAR search and dependency download from the Maven repository](/logo.png)
cats.Monad.scala Maven / Gradle / Ivy
package cats
import simulacrum.typeclass
/**
* Monad.
*
* Allows composition of dependent effectful functions.
*
* See: [[http://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/baastad.pdf Monads for functional programming]]
*
* Must obey the laws defined in cats.laws.MonadLaws.
*/
@typeclass trait Monad[F[_]] extends FlatMap[F] with Applicative[F] {
override def map[A, B](fa: F[A])(f: A => B): F[B] =
flatMap(fa)(a => pure(f(a)))
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy