<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><span class=""><br><div><i><span style="line-height:1.5"><br></span></i></div></span><div>I don’t understand why we need the `mutating` keyword in the first place. Is it for readability? Right now the compiler knows when a function mutates a property and forces us to write `mutating`. Couldn’t it just fail compiling when try to call a mutation function but we’re not allowed?</div><div><br></div></div></blockquote><div><br></div><div>I strongly disagree with this sentiment. I agree that the compiler can figure it out without us in many cases but I appreciate knowing *explicitly* which parts of an API will mutate a value. It is helpful for both the vendor and consumer of the API to require that keyword.  </div></div><br></div></div>