This class allows code to depends on the data that a value will be combined with, fulfilling the Promise with the value just before the value is added in.
This Monoid allows code to depend on the result of computation asynchronously.
The tunnel class represents a piece of computation that depends on the fulfilment of a promise.
This Monoid allows code to depends on the results of asynchronous computation.