1.8 Protocol Update

Adds the new 1.8 protocol.
The conditions in the last two lines seem swapped. And we use an explicit condition, never an implicit integral -> bool cast. And Y should most likely be signed as well.

I don't understand your note about templates.