raulraja
01/03/2019, 1:42 PMfun <F> MonadDefer<F>.destroyTheWorld(): Kind<F, Unit> = delay { reallyDestroyIt() }
Either.monadDefer().destroyTheWorld() // does not compile because Either can't suspend effects
IO.monadDefer().destroyTheWorld().unsafeRunSync() // really destroys explicitly