Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sealed trait Free[F[_], A] {
- def flatMap[B](f: A => Free[F, B]): Free[F, B] = this match {
- case Return(a) => f(a)
- case FlatMap(sub, cont) => FlatMap(sub, cont andThen (_ flatMap f))
- }
- def map[B](f: A => B): Free[F, B] = flatMap(a => Return(f(a)))
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement