<html><body><blockquote class="hm_quoted_text" style="padding-left:8px;margin:0;border-left:1px solid rgb(185,185,185);color:rgb(100,100,100)"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>I also am not sure there is an actual problem: In the scheme as proposed, implementations could just coerce themselves to array and call the routine again. (Or, in the scheme I proposed, call the routine again but with `coerce=True`.) </div></div></div></div></blockquote><div><br></div><div style="text-align:left">Ah, I didn’t think of the first solution. `coerce=True` may not produce the desired solution in cases where some arguments can be coerced and some can’t.</div><div style="text-align:left"><br></div><div style="text-align:left">However, such a design may still have some benefits. For example:</div><div style="text-align:left"><ul style="font-style:normal;font-variant-caps:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:17px;font-family:"Helvetica Neue";text-decoration:none;color:rgb(0,0,0);background-color:rgba(0,0,0,0)"><li>``array1.HANDLED_TYPES = [array1]``</li><li>``array2.HANDLED_TYPES = [array1, array2]``</li><li>``array1`` is coercible.</li><li>None of these is a sub/super class of the other or of ``ndarray``</li><li>When calling ``np.func(array1(), array2())``, ``array1<span style="background-color:rgba(0,0,0,0)">`` would be coerced with your solution (because of the left-to-right rule and ``array1`` choosing to coerce itself) but not with ``np.NotImplementedButCoercible``.</span></li></ul></div><blockquote class="hm_quoted_text" style="padding-left:8px;margin:0;border-left:1px solid rgb(185,185,185);color:rgb(100,100,100)"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><div></div></div><div>I think that in the proposed scheme this is effectively what happens.</div></div></div></div></blockquote><div><br></div><div>Not really, the current scheme is unclear on what happens if none of the arguments implement ``__array_function__`` (or at least it doesn’t explicitly state it that I can see).</div>



        

        

        

    

</body></html>