Task α is a primitive for asynchronous computation.
It represents a computation that will resolve to a value of type α,
possibly being computed on another thread. This is similar to Future in Scala,
Promise in Javascript, and JoinHandle in Rust.
The tasks have an overridden representation in the runtime.