public override bool Equals(object obj) { IPermission perm = obj as IPermission; if (obj != null && perm == null) return false; if (!IsSubsetOf(perm)) return false; if (perm != null && !perm.IsSubsetOf(this)) return false; return true; }