code: function(value1, value2) {
  		// check primary direction
  		if (value1 === value2) {
  			return true;
  		}
  		var Type1 = set.getType(value1),
  			Type2 = set.getType(value2);
  		var forwardComparators = set.getComparisons(Type1, Type2);
  		if (forwardComparators) {
  			// A set is a subset, if it intersects with the set, and it has nothing
  			// outside the other set.
  			var intersection = get.intersection(forwardComparators, value1, value2);
  			// [a, b] \ [a, b, c]
  			var difference = get.difference(forwardComparators, value1, value2);
  			// they intersect, but value2 has nothing value1 outside value2
  			if (intersection === set.UNKNOWABLE || difference === set.UNKNOWABLE) {
  				// {sort: "a", page: 0-2} E {sort: "b", page: 2-3}
  				return undefined;
  			} else if (intersection !== set.EMPTY && difference === set.EMPTY) {
  				return true;
  			} else {
  				return false;
  			}
  		} else {
  			throw new Error("Unable to perform subset comparison between " + Type1.name + " and " + Type2.name);
  		}
  	}
docs: Checks if A is a subset of B.  If A is a subset of B if:
  - A \ B = EMPTY (A has nothing outside what's in B)
  - A ∩ B = defined