<div dir="auto"><div><div class="gmail_quote"><div dir="ltr">On Fri, Aug 24, 2018, 09:07 Hameer Abbasi <<a href="mailto:einstein.edison@gmail.com">einstein.edison@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Fri, Aug 24, 2018 at 5:55 PM Stephan Hoyer <<a href="mailto:shoyer@gmail.com" target="_blank" rel="noreferrer">shoyer@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>On Thu, Aug 23, 2018 at 1:06 PM Hameer Abbasi <<a href="mailto:einstein.edison@gmail.com" target="_blank" rel="noreferrer">einstein.edison@gmail.com</a>> wrote:<br></div><div><div class="gmail_quote"><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"><div><div>I might add that if it’s a mandatory part of the protocol, then not all things will work. For example, if XArray and Dask want to support sparse arrays, they’ll need to add an explicit dependency.</div></div></div></blockquote><div dir="auto"><br></div><div dir="auto">I don't follow -- can you please elaborate?</div></div></div></blockquote><div><br></div><div>If we make specifying __array_function_types__ a mandatory part -- And such that it is a whitelist, the XArray or Dask would need to import sparse in order to specify that they accept mixing sparse arrays with native arrays (i.e. for adding sparse.SparseArray to __array_function_types__). Which is basically what I mean. It might be a 'soft' dependency, but there will be a dependency nonetheless.</div></div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Oh yeah, if we did this then we definitely wouldn't want to make it mandatory. Some `__array_function__` implementations might want to do checking another way, or support different types in different overloaded functions, or be able to handle arbitrary types.</div><div dir="auto"><br></div><div dir="auto">-n</div></div>