This takes in a value and updates the promise, fulfilling the chain of futures which depends on this final promise.
This takes in a value and updates the promise, fulfilling the chain of futures which depends on this final promise. IMPORTANT: this can only be called once. In this way, it is dangerous to reuse Tunnel objects in Monoid code that might reuse objects.
The tunnel class represents a piece of computation that depends on the fulfilment of a promise. IMPORTANT: see apply, but Tunnels are mutable, and can only be fulfilled once. They are generally not reusable. Reusing a Tunnel in computation by a TunnelMonoid will cause the promise to be fulfilled more than once which will most likely lead to errors.