Allows a function to work with a any subtypes of the required parameter types.

Problems

Implementations