Contravariance opens up the possibility that a type is a subtype of Continuation<T> if its generic type parameter is a supertype of T, adding a bit of typing flexibility while still having type-safety. I think that if it were invariant, then that flexibility just wouldn't be there.