Not sure about `uncancel`. If someon called `cancel(true)` then likely their threads have been interrupted, so really we can't uncancel. What is the use-case?