whole_func_string: function forEach (arrayLike, callback, context) {
          var classOfArrayLike = sjl.classOf(arrayLike);
          switch (classOfArrayLike) {
              case _Array:
              case 'Set':
              case 'SjlSet':
              case 'SjlMap':
              case 'Map':
                  arrayLike.forEach(callback, context);
              break;
              case _Object:
                  forEachInObj(arrayLike, callback, context);
              break;
              default:
                  throw new TypeError('sjl.forEach takes only ' +
                      '`Array`, `Object`, `Map`, `Set`, `SjlSet`, and `SjlMap` objects.  ' +
                      'Type passed in: `' + classOfArrayLike + '`.');
          }
      }
func_code_string: function forEach (arrayLike, callback, context) {
          var classOfArrayLike = sjl.classOf(arrayLike);
          switch (classOfArrayLike) {
              case _Array:
              case 'Set':
              case 'SjlSet':
              case 'SjlMap':
              case 'Map':
                  arrayLike.forEach(callback, context);
              break;
              case _Object:
                  forEachInObj(arrayLike, callback, context);
              break;
              default:
                  throw new TypeError('sjl.forEach takes only ' +
                      '`Array`, `Object`, `Map`, `Set`, `SjlSet`, and `SjlMap` objects.  ' +
                      'Type passed in: `' + classOfArrayLike + '`.');
          }
      }
func_documentation_string: For each for array like objects.
  @function module:sjl.forEach
  @param arrayLike {Array|Set|SjlSet|SjlMap|Map}
  @param callback
  @param context