From the user's perspective, there is never going to be only one way to switch tasks. Most switches will be implicit, inside I/O and such, and others will be explicit. Of course `yieldto` *is* ultimately the only way to switch tasks.