public bool Equals(SpfRecord other)
 {
     if (ReferenceEquals(null, other))
     {
         return(false);
     }
     if (ReferenceEquals(this, other))
     {
         return(true);
     }
     return(RecordsStrings.CollectionEqual(other.RecordsStrings) &&
            Equals(Version, other.Version) &&
            Equals(IsRoot, other.IsRoot) &&
            Terms.CollectionEqual(other.Terms) &&
            Messages.CollectionEqual(other.Messages));
 }