PS result = constructEvaluationStateFromDomain(input);
if (initializerOrNull != null)
result = evaluateExpression(initializerOrNull, result);
Variable variable = EvaluationUtils.tryGetVariable(name);
if (variable == null)
throw new FatalAIError("Cannot resolve type variable: '%s'", name);
if (!asAssignment || initializerOrNull == null)
result = processNewVariable(result, variable, asAssignment);
else
result = processVariableAssignment(result, name);
return constructDomainFromEvaluationState(result);