This gist is part of a blog post. Check it out at:
http://jasonrudolph.com/blog/2011/08/09/programming-achievements-how-to-level-up-as-a-developer
| import cats.effect.{Effect, IO} | |
| import fs2._ | |
| import scala.concurrent.ExecutionContext | |
| def runConcat[F[_], A](first: Stream[F, A], second: Stream[F, A])( | |
| implicit F: Effect[F], | |
| ec: ExecutionContext): Stream[F, A] = { | |
| type Step = AsyncPull[F, Option[(Segment[A, Unit], Stream[F, A])]] | |
| def readFull(s: Step): Pull[F, A, Unit] = |
This gist is part of a blog post. Check it out at:
http://jasonrudolph.com/blog/2011/08/09/programming-achievements-how-to-level-up-as-a-developer