code: public Fields difference(Fields fields) {
  		
  		assertNotNull(fields);
  		
  		Set<Field> view = new HashSet<Field>(this.fields);
  		view.removeAll(new HashSet<Field>(fields.fields));
  		
  		return new Fields(view);
  	}
docs: <p>Finds the <b>difference</b> between this instance and a supplied instance. Returns a new
  instance of {@link Fields} with only those {@link Field}s which unique to this instance.</p>
  
  <p><pre>
  Difference can be expressed as,
  <code>
  A - B = { x &isin; A and x &notin; B }
  </code>
  where,
  
  A = this Fields instance
  B = supplied Fields instance
  x = any field from the resulting Fields instance
  </pre></p>
  
  @param fields
  the instance of {@link Fields} whose common items are subtracted from this instance
  <br><br>
  @return a new instance of {@link Fields} which wraps only the only those {@link Field}s which
  are unique to this instance
  <br><br>
  @since 1.3.0