@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (!super.equals(obj))
			return false;
		if (getClass() != obj.getClass())
			return false;
		MInterface other = (MInterface) obj;
		if (operations == null) {
			if (other.operations != null)
				return false;
		} else if (!operations.containsAll(other.operations) || !other.operations.containsAll(operations)) // any order
			return false;
		if (pub != other.pub)
			return false;
		return true;
	}