speed up the canceller.

- need to use laziness to build the actual monadic value.