<div dir="ltr">I&#39;m also in favor of providing the ability to specify the type of the error for the result. It provides self-documenting and type safety advantages over the generic Error that really makes the type much more useful.<div><br></div><div>The ideal would be to have the two possible syntax (Result&lt;T&gt; and Result&lt;T,E&gt;) , but i&#39;m not sure how feasible that is.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 2, 2017 at 7:15 PM, Jon Shier via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word;line-break:after-white-space">You don’t lose it, it’s just behind `Error`. You can cast out whatever strong error type you need without having to bind an entire type to it generically. If getting a common error type out happens a lot, I usually add a convenience property to `Error` to do the cast for me. Plus, having to expose an entire new error wrapper is just a non starter for me and doesn’t seem necessary, given how Result is currently used in the community.<span class="HOEnZb"><font color="#888888"><div><br></div><div><br></div></font></span><div><span class="HOEnZb"><font color="#888888">Jon</font></span><div><div class="h5"><br><div><br><blockquote type="cite"><div>On Nov 2, 2017, at 2:12 PM, Dave DeLong &lt;<a href="mailto:swift@davedelong.com" target="_blank">swift@davedelong.com</a>&gt; wrote:</div><br class="m_3214290834655924400Apple-interchange-newline"><div><div style="word-wrap:break-word;line-break:after-white-space"><div>I think I’d personally rather see this done with a generic error as well, like:</div><div><br></div><div>enum GenericResult&lt;T, E: Error&gt; {</div><div><span class="m_3214290834655924400Apple-tab-span" style="white-space:pre-wrap">        </span>case success(T)</div><div><span class="m_3214290834655924400Apple-tab-span" style="white-space:pre-wrap">        </span>case failure(E)</div><div>}</div><div><br></div>And a typealias:<div><br></div><div>typealias Result&lt;T&gt; = GenericResult&lt;T, AnyError&gt;</div><div><br></div><div>This would require an “AnyError” type to type-erase a specific Error, but I’ve come across many situations where a strongly-typed error is <i>incredibly </i>useful, and I’d be reluctant to see that thrown away.</div><div><br></div><div>Dave<br><div><br><blockquote type="cite"><div>On Nov 2, 2017, at 12:08 PM, Jon Shier via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:</div><br class="m_3214290834655924400Apple-interchange-newline"><div><div style="word-wrap:break-word;line-break:after-white-space">Swift-Evolution:<div><span class="m_3214290834655924400Apple-tab-span" style="white-space:pre-wrap">        </span>I’ve written a first draft of a proposal to add Result&lt;T&gt; to the standard library by directly porting the Result&lt;T&gt; type used in Alamofire to the standard library. I’d be happy to implement it (type and tests for free!) if someone could point me to the right place to do so. I’m not including it directly in this email, since it includes the full implementation and is therefore quite long. (Discourse, please!) </div><div><br></div><div><a href="https://github.com/jshier/swift-evolution/blob/master/proposals/0187-add-result-to-the-standard-library.md" target="_blank">https://github.com/jshier/<wbr>swift-evolution/blob/master/<wbr>proposals/0187-add-result-to-<wbr>the-standard-library.md</a></div><div><br></div><div><br></div><div>Thanks, </div><div><br></div><div>Jon Shier</div><div><br></div><div><br></div></div>______________________________<wbr>_________________<br>swift-evolution mailing list<br><a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" target="_blank">https://lists.swift.org/<wbr>mailman/listinfo/swift-<wbr>evolution</a><br></div></blockquote></div><br></div></div></div></blockquote></div><br></div></div></div></div><br>______________________________<wbr>_________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/<wbr>mailman/listinfo/swift-<wbr>evolution</a><br>
<br></blockquote></div><br></div>