public static TypePattern read(DataInputStream s, ISourceContext context) throws IOException {
public static TypePattern read(VersionedDataInputStream s, ISourceContext context) throws IOException {
	public static TypePattern read(DataInputStream s, ISourceContext context) throws IOException {		byte key = s.readByte();		switch(key) {			case WILD: return WildTypePattern.read(s, context);			case EXACT: return ExactTypePattern.read(s, context);			case BINDING: return BindingTypePattern.read(s, context);			case ELLIPSIS_KEY: return ELLIPSIS;			case ANY_KEY: return ANY;			case NO_KEY: return NO;			case NOT: return NotTypePattern.read(s, context);			case OR: return OrTypePattern.read(s, context);			case AND: return AndTypePattern.read(s, context);		}		throw new BCException("unknown TypePattern kind: " + key);	}