1. A generic type parameter constraint system comprising: a generic type parameter component to receive at least one instantiation type that instantiates a generic type; a pattern component to receive at least one pattern type that defines a set of one or more constraints on the instantiation type; and a comparison component that compares the instantiation type to the associated pattern types and generates an error if the constraints of the pattern type are not satisfied.