<div dir="ltr">On 3 November 2017 at 21:36, Adam Kemp <span dir="ltr">&lt;<a href="mailto:adam_kemp@apple.com" target="_blank">adam_kemp@apple.com</a>&gt;</span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word;line-break:after-white-space"><br><div><div>Your ledger idea might theoretically prevent some of those bad things from happening, but at the expense of making the whole thing unusable for this use case. That’s not a good trade off.</div></div></div></blockquote></div><br></div><div class="gmail_extra">well, this particular one is not impossible with ledger:</div><div class="gmail_extra"><br></div><div class="gmail_extra">class View: UIView {</div><div class="gmail_extra"><div class="gmail_extra">   part Feature1    // *** default</div><div>   optional part Feature2   // *** the behaviour you describing<br></div><div>}</div></div><div class="gmail_extra"><br></div><div class="gmail_extra">or even this (if majority agrees this is a better default):</div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra">class View: UIView {</div><div class="gmail_extra"></div></div><div class="gmail_extra"><div class="gmail_extra">   required part Feature1    // *** opt-in</div><div>   part Feature2   // *** optional, the behaviour you describing</div><div>}</div><div><br></div></div><div class="gmail_extra">Mike</div><div class="gmail_extra"><br></div></div>