class DefaultTypeVariable implements TypeVariable<D> {

	@Override
	public boolean equals(Object object)
	{
		if (!(object instanceof TypeVariable<?>))
		{
			return false;
		}
		
		TypeVariable<?> typeVariable = (TypeVariable<?>) object;
		
		return declaration.equals(typeVariable.getGenericDeclaration())
			&& name.equals(typeVariable.getName())
			&& Arrays.equals(bounds, typeVariable.getBounds());
	}

	public  DefaultTypeVariable(D declaration, String name, Type[] bounds);

}