ハマりました
次のコード通らん理由が分からん

import Data.Ratio

[[ a,b],[c,d]] *** [[ p,q],[r,s]] = [ [ a*p+b*r, a*q+b*s], [c*p+d*r],[c*q+d*s]]

i [[ a,b],[c,d]] = [[d,-b],[-c,a]]

a :: [[Rational ]]
b:: [[Rational ]]

a = [[1%1,99],[0,100]]
b = [[100,0],[-99,1]]

main = do
mapM_ print $ [ a, b , i a , i b]
print $ (( i b ) *** ( i a ) ) *** b

実行時エラーで
prog: prog.hs:4:1-79: Non-exhaustive patterns in function

になる
一項目のprintの出力

[[1 % 1,99 % 1],[0 % 1,100 % 1]]
[[100 % 1,0 % 1],[(-99) % 1,1 % 1]]
[[100 % 1,(-99) % 1],[0 % 1,1 % 1]]
[[1 % 1,0 % 1],[99 % 1,100 % 1]]

を見てもどう見てもパターンマッチしてるのに?
何故?