protected bool Equals(Element other)
{
if (other == null) return false;
return base.Equals(other) &&
other.Version == Version && other.VersionModifier == VersionModifier && other.Released == Released && other.ReleasedVerbatim == ReleasedVerbatim && other.License == License && other.Main == Main && other.SelfTest == SelfTest && other.DocDir == DocDir &&
Commands.UnsequencedEquals(other.Commands) && Dependencies.UnsequencedEquals(other.Dependencies) && Restrictions.UnsequencedEquals(other.Restrictions) && Bindings.UnsequencedEquals(other.Bindings);
}