Those are all undefined in the Future trait. They are used for different purposes and having all 3 allows yielding the thread when it is waiting.