Open
Description
The thing about IO
in multiple languages / libraries is that it is lazy.
Our IO
is not lazy by design. It is done, so Python developers can use it like so: impure(print)(1) # prints "1"
But, we also need to think about other problems as well:
- Retries, with proper lazy
IO
one can retry an operation as many times as one wishes:p = impure_lazy(print)(1); p(); p() # prints "1" twice
- Semantical identity to
Future
, currently it is not similar to regularIO
, becauseFuture
s are lazy: they don't run until they are executed properly - New users will find the similar data-type they already know from other languages / libraries