@BenMorel 

> And I still think that this approach is much worse for a standard, as it shifts the responsibility of playing with if() ... else ... to the user, which is the problem abstraction has been invented to solve.

I disagree with saying that this is a "problem." Standards that enforce performance penalties are why we're now developing HTTP/2.0 and not joyously reveling in HTTP/1.1 for all eternity ... requiring a userland type is short-sighted.