code: function forEachTypedProperty(container, keys, types, copy, context) {
    let errors;
    for (const key of keys) {
      const element = container[key];
      const type = types(key);
  
      context.enter(key, container);
      try {
        const result = type(element, context);
        if (context.isErrorWrapper(result)) {
          if (!context.continueAfterError) {
            return result;
          }
          errors = context.tallyErrors(errors, result);
        } else if (copy !== void 0) {
          copy[key] = result;
        }
      } finally {
        context.exit();
      }
    }
  
    if (errors !== void 0) {
      return context.wrapErrors(errors);
    } else {
      return context.toValue(copy || container);
    }
  }
docs: /* ================================================================================
  Combinators that produce compound types: array(), tuple(), record().
  ================================================================================ Iterate over properties for array(), tuple(), and record() types alike.