private static <T> T cast(
     String paramName, ClassObject struct, Class<T> expectedType, Location loc)
     throws EvalException {
   Object value = struct.getValue(paramName);
   return SkylarkType.cast(
       value,
       expectedType,
       loc,
       "expected %s for '%s' but got %s instead: %s",
       SkylarkType.of(expectedType),
       paramName,
       EvalUtils.getDataTypeName(value, false),
       value);
 }