docs: function matchByFirstExpectation(matchingObjects, matchingExpectedObjects, path){
  
      //No assertion, allow
      if(matchingExpectedObjects.length === 0){
          return false;
      }
  
      if(matchingExpectedObjects.length !== 1){
          throw {
              error: "During the type match, there is an uneven number of assertions and expectations. It's not possible to disambiguate which is to be matched with which. Create an expectation with either a single element to match the type against or else the same number of elements for each actual element",
              expected: "assertion array length to equal 1",
              actual: matchingExpectedObjects.length
          };
      }
  
      var failures = matchingObjects.map(function(match){
          if(type(match) !== type(matchingExpectedObjects[0])){
              return {
                  error: "Type matching failure for " + path,
                  expected: "Expected type <" + type(matchingExpectedObjects[0]) + "> from example: " + util.inspect(matchingExpectedObjects[0]),
                  actual: "Found <"  + type(match) + "> for " + util.inspect(match)
              };
          }
      }).filter(function(e){
          return !!e;  //Remove undefined records
      });
  
      if(failures.length){
          return failures[0];
      }
  }