public override int GetHashCode() { unchecked { return (base.GetHashCode()*397) ^ (children != null ? children.GetHashCode() : 0); } }