<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><blockquote type="cite" class="">On Dec 17, 2015, at 23:50 , Brent Royal-Gordon via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:<br class=""><br class="">I actually think that behavior instances should probably be private, and there should be no way to change that. Behaviors are inherently an implementation detail, and you should not be exposing them directly to users of your type. Instead, you should expose just the operations you expect to be needed through your own calls, which you can reimplement as needed.<br class=""></blockquote><br class="">I'm leaning in this direction too. The idea of exposing the behavior <i class="">itself</i> as a value seems wrong for almost any client. "foo.prop.reset()" is slightly nicer than "foo.resetProp()", but not if it conflicts with a 'reset' that's already on the property type. "<a href="mailto:foo.prop@behavior.reset" class="">foo.prop@behavior.reset</a>()" certainly isn't an improvement.<div class=""><br class=""></div><div class=""><div class="">Jordan</div></div></body></html>