Most discussion is on Typelevel Discord: https://discord.gg/bSQBZA3Ced
F
and O
in Pull very easily
R
is more confusing
* `Pull` forms a monad in `R` with `pure` and `flatMap`:
Segment
for now, and talk about uncons1/output1
and not about uncons/output
Pull.output
object Pull {
....
def output1[F[_], O](o: O): Pull[F, O, Unit]
}
output1
takes an element, and gives a Pull that describes the concept of emitting that one value
Unit
there
Pull
forms a Monad in R
Monad
typeclass instance
pure
gives you a Pull that describes the action of finishing the Pull
with a value R
flatMap
takes an R => Pull