  We propose algebraic protocols that enable the definition of protocol
templates and session types analogous to the definition of domain-specific
types with algebraic datatypes. Parameterized algebraic protocols subsume all
regular as well as most context-free and nested session types and, at the same
time, replace the expensive superlinear algorithms for type checking by a
nominal check that runs in linear time. Algebraic protocols in combination with
polymorphism increase expressiveness and modularity by facilitating new ways of
parameterizing and composing session types.
