Wip sip23 √

(And this is what I mean when I say it breaks modularity: even with the same EC, I can't change out one Promise impl. for another.)