public static Declare read(DataInputStream s, ISourceContext context) throws IOException {
public static Declare read(VersionedDataInputStream s, ISourceContext context) throws IOException {
	public static Declare read(DataInputStream s, ISourceContext context) throws IOException {		byte kind = s.readByte();		switch (kind) {			case ERROR_OR_WARNING:				return DeclareErrorOrWarning.read(s, context);			case DOMINATES:				return DeclarePrecedence.read(s, context);			case PARENTS:				return DeclareParents.read(s, context);			case SOFT:				return DeclareSoft.read(s, context);			default:				throw new RuntimeException("unimplemented");		}	}