Skip to content

Instantly share code, notes, and snippets.

View miguel-vila's full-sized avatar

Miguel Vilá miguel-vila

View GitHub Profile
sealed trait Task[A] {
import Task._
final def flatMap[B](f: A => Task[B]): Task[B] = Suspend(this, f)
final def map[B](f: A => B): Task[B] = this match {
case Suspend(inner, suspension) =>
Suspend(inner, suspension andThen { _ map f })
case Async(body) =>