public override int GetHashCode() { unchecked { return (Variables.GetHashCode()*397) ^ Rules.GetHashCode(); } }