code: private static boolean matches(Type from, Type to, Map<String, Type> typeMap) {
  		if (to.equals(from))
  			return true;
  
  		if (from instanceof TypeVariable) {
  			return to.equals(typeMap.get(((TypeVariable<?>) from).getName()));
  		}
  
  		return false;
  	}
docs: Checks if two types are the same or are equivalent under a variable
  mapping given in the type map that was provided.