<div dir="ltr">Would it make sense to allow mutable properties in structs, which could be mutated even by non-mutating methods?<div><br></div><div>I&#39;ve noticed this could be useful when implementing a non-mutating protocol method. The method semantically doesn&#39;t change the state of the protocol&#39;s implementor, and therefore shouldn&#39;t be declared as mutating. However, *some* implementations might need to change some internal state for implementing the functionality. Making specific struct properties mutable for such a case could make sense.</div><div><br></div><div>Alternatively, Swift could allow implementing a non-mutating protocol method as a mutating method in the implementor. Currently, this doesn&#39;t seem to be  allowed; Swift doesn&#39;t recognize the mutating method as a match for the non-mutating protocol method.</div><div><br></div><div>Cheers,</div><div>Dan</div></div>