Branching Types
Although systems with intersection types have many unique
capabilities, there has never been a fully satisfactory explicitly typed
system with intersection types. We introduce lambdaB with
branching types and types which are quantified over type
selectors to provide an explicitly typed system with the same
expressiveness as a system with intersection types. Typing derivations in
lambdaB effectively squash together what would be separate
parallel derivations in earlier systems with intersection types.