h a function may be applied to any arguments whose types match a type expression involving type variables
h a function may be applied to any arguments whose types match a type expression involving type variables
type variables can be instantiated to different types in different circumstances