@Override
public Tuple<T> createValues(TypeTag tag, PrefabValues prefabValues, LinkedHashSet<TypeTag> typeStack) {
ConditionalInstantiator ci = new ConditionalInstantiator(typeName);
TypeTag singleParameterTag = copyGenericTypesInto(parameterRawType, tag);
Object red = ci.instantiate(classes(parameterRawType), objects(prefabValues.giveRed(singleParameterTag)));
<BUG>Object black = ci.instantiate(classes(parameterRawType), objects(prefabValues.giveBlack(singleParameterTag)));
@SuppressWarnings("unchecked")
Tuple<T> result = new Tuple<>((T)red, (T)black);
return result;</BUG>
}

@Override
public Tuple<T> createValues(TypeTag tag, PrefabValues prefabValues, LinkedHashSet<TypeTag> typeStack) {
ConditionalInstantiator ci = new ConditionalInstantiator(typeName);
TypeTag singleParameterTag = copyGenericTypesInto(parameterRawType, tag);
Object red = ci.instantiate(classes(parameterRawType), objects(prefabValues.giveRed(singleParameterTag)));
Object black = ci.instantiate(classes(parameterRawType), objects(prefabValues.giveBlack(singleParameterTag)));
return Tuple.of(red, black);
