Ref<PyType> (@NotNull PyCallExpression call, @NotNull TypeEvalContext context) { final PyExpression[] arguments = call.getArguments(); if (arguments.length != 1) return null; final PyExpression argument = arguments[0]; final PyType argumentType = context.getType(argument); if (argumentType instanceof PyTupleType) { return Ref.create(argumentType); } else if (argumentType instanceof PyCollectionType) { final PyType iteratedItemType = ((PyCollectionType)argumentType).getIteratedItemType(); return Ref.create(PyTupleType.createHomogeneous(call, iteratedItemType)); } return null; }