The change to use contexts looks good.
Do you think it makes sense to genericize prior to conversion to contexts?
Since the two changes are orthogonal I don't think it matters which order they are done in. From the user's point of view, we should make both changes in the same release so users only have to rewrite their code once.
