Using Polymorphic Types to Structure Flexible Protocol Stacks | AMiner