<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Aug 2, 2017 at 1:09 PM, Gor Gyolchanyan via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><span class=""><blockquote type="cite"><div><div style="word-wrap:break-word"><div><div><div> and if you have a huge entity, it doesn&#39;t get better just because you split it and hide its complexity.</div></div></div></div></div></blockquote><div><br></div></span><div>Splitting and hiding complexity is by far the only reasonable way of dealing with huge entities. If the entity gains too much responsibility, it&#39;s probably a good idea to split it into several smaller entities. If the entity contains a large amount of accidental complexity that solely serves the purpose of enabling a select set of intended features, then it&#39;s probably a good idea to hide the accidental complexity away from users of the entity.</div><div><br></div><div>In fact, that&#39;s exactly why I always wished that protocols could get private requirements that are there solely for use in protocol extensions and are otherwise hidden from existence. I haven&#39;t talked about this in detail because I don&#39;t see a reasonable way of implementing it yet.</div></div></div></blockquote><div><br></div><div>+1, although most times I wanted this because of the impossibility of defining stored attributes in protocol extensions, let alone private stored attributes.</div></div><div><br></div>-- </div><div class="gmail_extra">Víctor Pimentel<div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr" style="font-size:12.8px"><div style="font-size:12.8px"></div></div></div></div></div></div></div></div></div></div></div></div>
</div></div>