Why does the double dispatch for A*B only looks for the implementation in B's FList?
<div>Is there any deep reason for this?</div><div><br></div><div>If I implement a new Mat type, say MATFOO, and want to make it be able pre- and post-multiply </div><div>an existing type MATBAR, it looks like I have to add "MatMatMult_foo_bar_C" to MATBAR's FList, </div>

<div>which is annoying, since I don't want to have to touch MATBAR's constructor code.</div><div>I acknowledge that there is a certain amount of ambiguity possible, if both MATFOO and MATBAR</div><div>had "MatMatMult_foo_bar_C" on their FLists, but one or the other would predictably take precedence.</div>

<div><br></div><div>If nobody objects, I will add another search on A's FList.</div><div><br></div><div>Dmitry.</div>