This module implements monadic
condition computations. They can be used
to write waiting code that is compatible
with duppy's tasks, i.e. Condition.wait c m blocks
the calling computation and not the calling thread
until Condition.signal c or Condition.broadcast c has
been called.