There is no difference between f = let m1 = Mt [[0]] :: Matrix Int in mm m1 m1 m1 and f = (m1 * m1) :: Matrix Int aside from the convoluted way of providing the type annotation (and the need in the former case to provide a sample value of the intended result type, not a very easy thing to do in most circumstances). In this case, the single-argument restriction is not buying you anything. [Sergey, let's take further follow-ups to my message off-line.]
- first-argument approach. Reply. S.D.Mechveliani
- Re: first-argument approach. Reply. Dominic Duggan
- Re: first-argument approach. Reply. Fergus Henderson