The Task implementation I have is basically the I/O Monad with an Error type, except it doesn't assume that there's infinite recursion depth in whatever interpreter is running the code.
Something like a lazy stream, perhaps.

It should allow me to write a trampoline based interpreter, which makes the most of single threaded situations with minimal overhead, as well as handle asynchronous effects.

#Haxe #DevLog