<div>I believe you&#39;re confusing in-class factory methods with factory pattern. </div><div><br></div><div>Factories can be separate objects and it&#39;s a very different situation.</div><div><br><div class="gmail_quote"><div>On Mon, 26 Dec 2016 at 11:46 Xiaodi Wu &lt;<a href="mailto:xiaodi.wu@gmail.com">xiaodi.wu@gmail.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_msg">On Mon, Dec 26, 2016 at 1:10 AM, Daniel Leping <span class="gmail_msg">&lt;<a href="mailto:daniel@crossroadlabs.xyz" class="gmail_msg" target="_blank">daniel@crossroadlabs.xyz</a>&gt;</span> wrote:<br class="gmail_msg"></div><div class="gmail_msg"><div class="gmail_extra gmail_msg"><div class="gmail_quote gmail_msg"><blockquote class="gmail_quote gmail_msg" 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 class="gmail_msg">I&#39;m giving a wider range, which is about ANY factory pattern related stuff. Doesn&#39;t look to be narrow to me.</div></blockquote><div class="gmail_msg"><br class="gmail_msg"></div></div></div></div><div class="gmail_msg"><div class="gmail_extra gmail_msg"><div class="gmail_quote gmail_msg"><div class="gmail_msg">I thought factory methods were regarded as undesirable in Swift? One of the stated reasons for failable initializers was: &quot;Failable initializers eliminate the most common reason for factory methods in Swift... Using the failable initializer allows greater use of Swift’s uniform construction syntax, which simplifies the language by eliminating the confusion and duplication between initializers and factory methods.&quot; &lt;<a href="https://developer.apple.com/swift/blog/?id=17" class="gmail_msg" target="_blank">https://developer.apple.com/swift/blog/?id=17</a>&gt;</div></div></div></div><div class="gmail_msg"><div class="gmail_extra gmail_msg"><div class="gmail_quote gmail_msg"><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><br class="gmail_msg"></div><blockquote class="gmail_quote gmail_msg" 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 class="gmail_msg"><div class="gmail_quote gmail_msg"><div class="gmail_msg">On Mon, 26 Dec 2016 at 11:38 Xiaodi Wu &lt;<a href="mailto:xiaodi.wu@gmail.com" class="gmail_msg" target="_blank">xiaodi.wu@gmail.com</a>&gt; wrote:<br class="gmail_msg"></div><blockquote class="gmail_quote gmail_msg" 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 class="m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">On Mon, Dec 26, 2016 at 12:58 AM, Daniel Leping <span class="m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&lt;<a href="mailto:daniel@crossroadlabs.xyz" class="m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg" target="_blank">daniel@crossroadlabs.xyz</a>&gt;</span> wrote:<br class="m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"></div><div class="m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="gmail_extra m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="gmail_quote m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><blockquote class="gmail_quote m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg" 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 class="m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">Well, reflection is a huge performance drop. Protocol conformance is way better.</div></blockquote><div class="m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"></div></div></div></div><div class="m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="gmail_extra m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="gmail_quote m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">I&#39;m not sure how huge it would be in the grand scheme of things; in your example, you are still evaluating a train of protocol conformances and casting at runtime. Of course, compiler magic can be fast, but I still don&#39;t see how this is a &quot;very common use case&quot; (as you write) that would justify magic equivalent to that for Objective-C bridging, which is what you&#39;re saying it should be. If `DefaultConstructible` is useful only when it&#39;s magic and the specific use case is dependency injection/inversion of control, then we&#39;re getting very specialized here.</div></div></div></div><div class="m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="gmail_extra m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="gmail_quote m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"></div><div class="m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"></div><blockquote class="gmail_quote m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg" 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 class="m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="gmail_quote m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">On Mon, 26 Dec 2016 at 11:26 Xiaodi Wu &lt;<a href="mailto:xiaodi.wu@gmail.com" class="m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg" target="_blank">xiaodi.wu@gmail.com</a>&gt; wrote:<br class="m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"></div><blockquote class="gmail_quote m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg" 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 class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">On Mon, Dec 26, 2016 at 12:50 AM, Daniel Leping <span class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&lt;<a href="mailto:daniel@crossroadlabs.xyz" class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg" target="_blank">daniel@crossroadlabs.xyz</a>&gt;</span> wrote:<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"></div><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="gmail_extra m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="gmail_quote m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><blockquote class="gmail_quote m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg" 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 class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">I&#39;m not arguing for implicit conformance in general, but I&#39;m telling that DefaultConstructable is the same basic level as AnyObject, which is conformed implicitly.</div><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"></div><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">Shortly, I&#39;m against implicit conformance in general. I&#39;m positive with &quot;automatic compiler magic&quot; conformance to DefaultConstructable for any object having a default constructor as it really is a very basic stuff. Otherwise you will have to add explicit conformance to it in almost every class of yours (annoying).</div></blockquote><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"></div></div></div></div><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="gmail_extra m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="gmail_quote m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">Well, this sounds very different from Adam&#39;s proposal, where he proposes semantic meaning for `init()` that, as he described, means that it cannot apply to every type that implements `init()`. However, he also just said that he thinks that all types with `init()` should conform, so I guess I&#39;m confused which way that is.</div><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"></div><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">At base, you want a way of knowing if a type has `init()`. That sounds like reflection to me, not protocol conformance. For the record, I look forward to the day when AnyObject magic is removed; I assume it is coming eventually.</div></div></div></div><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="gmail_extra m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="gmail_quote m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"></div><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"></div><blockquote class="gmail_quote m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg" 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 class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589HOEnZb m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589h5 m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="gmail_quote m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">On Mon, 26 Dec 2016 at 11:14 Xiaodi Wu &lt;<a href="mailto:xiaodi.wu@gmail.com" class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg" target="_blank">xiaodi.wu@gmail.com</a>&gt; wrote:<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"></div><blockquote class="gmail_quote m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg" 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 class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">On Mon, Dec 26, 2016 at 12:43 AM, Daniel Leping via swift-evolution <span class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&lt;<a href="mailto:swift-evolution@swift.org" class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg" target="_blank">swift-evolution@swift.org</a>&gt;</span> wrote:<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="gmail_extra m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="gmail_quote m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><blockquote class="gmail_quote m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg" 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 class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">Thank you, Adam!</div></blockquote><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"></div><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">Wait, are you arguing for implicit conformance or not?</div></div></div></div><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="gmail_extra m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="gmail_quote m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"></div><blockquote class="gmail_quote m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg" 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 class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005HOEnZb m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005h5 m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="gmail_quote m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">On Mon, 26 Dec 2016 at 11:12 Adam Nemecek via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg" target="_blank">swift-evolution@swift.org</a>&gt; wrote:<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"></div><blockquote class="gmail_quote m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg" 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 class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt; <span style="font-size:12.8px" class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">Swift doesn&#39;t do implicit conformance.  It always has to be declared</span><br style="font-size:12.8px" class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><span style="font-size:12.8px" class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">explicitly.  I&#39;m pretty sure Doug Gregor can explain why better than I</span><br style="font-size:12.8px" class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><span style="font-size:12.8px" class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">could.</span><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><span style="font-size:12.8px" class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"></span></div><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><span style="font-size:12.8px" class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"></span></div></div><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><span style="font-size:12.8px" class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">I don&#39;t think Daniel was arguing for implicit conformance, he&#39;s saying that if it makes sense for an object to have a default constructor, it makes sense for it to conform to the protocol which I agree with 100%.</span></div></div><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="gmail_extra m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="gmail_quote m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">On Sun, Dec 25, 2016 at 9:17 PM, Dave Abrahams via swift-evolution <span class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&lt;<a href="mailto:swift-evolution@swift.org" class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg" target="_blank">swift-evolution@swift.org</a>&gt;</span> wrote:<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><blockquote class="gmail_quote m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg" 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"><span class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">on Sun Dec 25 2016, Daniel Leping &lt;<a href="mailto:swift-evolution@swift.org" class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg" target="_blank">swift-evolution@swift.org</a>&gt; wrote:<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt; You are right, usually it&#39;s required to implement a protocol which is not a<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt; good approach. The best is plain objects which can be used independently of<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt; ORM if needed (as DTOs, i.e.).<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt; I was thinking of DefaultConstructable as a protocol automatically applied<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt; to any class/struct having a default init, which is really logical for<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt; me.<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"></span>Swift doesn&#39;t do implicit conformance.  It always has to be declared<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">explicitly.  I&#39;m pretty sure Doug Gregor can explain why better than I<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">could.<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><div class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374m_2766821119499066179m_-4530764108705073068h5 m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt; On Mon, 26 Dec 2016 at 9:41 Xiaodi Wu &lt;<a href="mailto:xiaodi.wu@gmail.com" class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg" target="_blank">xiaodi.wu@gmail.com</a>&gt; wrote:<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; On Sun, Dec 25, 2016 at 10:50 PM, Daniel Leping<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; &lt;<a href="mailto:daniel@crossroadlabs.xyz" class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg" target="_blank">daniel@crossroadlabs.xyz</a>&gt;<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; wrote:<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt;<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; Ok, an example from ORM. You have an entity factory with a virtual (read,<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; overloadable in the subclasses) method populating the properties.<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; DefaultConstructable is a great choice here. Otherwise you will have to<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; force the users of your ORM to implement a certain protocol, which you most<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; probably would like to avoid.<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt;<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt;<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; Sorry--I&#39;m not very familiar with using Swift for ORM purposes. Why do you<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; want to avoid having your users conform to a certain protocol? Wouldn&#39;t the<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; users of your ORM have to conform to `DefaultConstructible` then? I&#39;m<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; looking at Swift ORMs, and all require users to conform to a protocol or<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; inherit from a base class, typically named `Model` or similar. From a quick<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; Google search:<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt;<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; <a href="https://vapor.github.io/documentation/fluent/model.html" rel="noreferrer" class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg" target="_blank">https://vapor.github.io/documentation/fluent/model.html</a><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; <a href="https://github.com/blitzagency/amigo-swift" rel="noreferrer" class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg" target="_blank">https://github.com/blitzagency/amigo-swift</a><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt;<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt;<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; In general I think the best showcase is generic factories.<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt;<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; On Mon, 26 Dec 2016 at 9:02 Xiaodi Wu &lt;<a href="mailto:xiaodi.wu@gmail.com" class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg" target="_blank">xiaodi.wu@gmail.com</a>&gt; wrote:<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt;<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; On Sun, Dec 25, 2016 at 10:18 PM, Daniel Leping<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; &lt;<a href="mailto:daniel@crossroadlabs.xyz" class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg" target="_blank">daniel@crossroadlabs.xyz</a>&gt;<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; wrote:<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt;<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; Usually it&#39;s a generic function that needs to return a value from some<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; other function or a default value (zero) in a case of some conditions.<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; Optional value is an arguable solution in quite some scenarios. Afaik,<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; sometimes it can be used for optional resolution.<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt;<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt;<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; Right, I&#39;d agree that Optional is the idiomatic way to do it. Afaict,<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; there&#39;s not much you can do with a default value that you couldn&#39;t with<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; nil, unless you have some guarantee as to _what_ that default is; however,<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; I&#39;d expect that in every case that you can rely on a guarantee about a<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; default value which would be more useful than nil, it&#39;s going to require<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; more specific knowledge of your type than an all-encompassing<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; `DefaultConstructible` can provide.<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt;<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; Also, generic factories. Widely used in ORM solutions.<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt;<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt;<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; Can you elaborate on this? Why is Optional not a solution here?<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt;<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt;<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; As mentioned above, algorythmical stuff that requires Zero.<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt;<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt;<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; I&#39;m still not convinced there exist credible use cases that need to be<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; generic over both collections and floating point, for instance. In fact, in<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"><br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg">&gt;&gt; my experience, there are few math-heavy algorithms where one can ignore<br class="m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435m_-6624483711025557005m_2849072433074184374gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676m_939594836185937589m_-7316109184252281435gmail_msg m_-5952565727754946483gmail-m_-86933029731195158m_3261830299967683124m_8724896498715535676gmail_msg m_-5952565727754946483gmail-m_-86933029731195158gmail_msg gmail_msg"></div></div></blockquote></div></div></div></blockquote></div></div></div></div></blockquote></div></div></div></blockquote></div></div></div></div></blockquote></div></div></div></blockquote></div></div></blockquote></div></div></div></blockquote></div></div></blockquote></div></div></div></blockquote></div></div>