Merging Closure into Protocols

Turns out there has already been a pitch for something similar: