code: public SemanticType.Reference extractReferenceType(SemanticType type, Environment environment,
  			ReadWriteTypeExtractor.Combinator<SemanticType.Reference> combinator, SyntacticItem item) {
  		//
  		if (type != null) {
  			SemanticType.Reference refT = rwTypeExtractor.apply(type, environment, combinator);
  			//
  			if (refT == null) {
  				syntaxError(item, EXPECTED_REFERENCE);
  			} else {
  				return refT;
  			}
  		}
  		//
  		return null;
  	}
docs: From an arbitrary type, extract the reference type it represents which is
  either readable or writeable depending on the context.