The Task value represents a process that was already started in background.
We can check the completion of the task, receive notifications about changing
its state and even suspend an outer process awaiting the final result of the task.
It complements the Process monad as it allows immediately continuing the main
computation without suspension.