So what you’re doing with `MonadDefer` is create a...
# arrow
s
So what you’re doing with
MonadDefer
is create a generic program for
F
where
F
could be
IO
,
Observable
,
Flow
etc but it doesn’t do anything until you actually decide to
unsafeRunSync
,
subscribe
it. The point is that you can compose it with any other program using
flatMap
or you could run it with
unsafe
or race it with another program using
race
. Since it didn’t execute you can re-use it anywhere in all different kinds of ways.