winitzki/sofp
Rethinking MonadError
Parse, don't validate
def tap[F: Applicative](fa: F[A], f: A => F[B]): F[A]
https://youtu.be/gCWtkvDQ2ZI
https://www.youtube.com/watch?v=JMZLBB_BFNg