I wrote: In article <[EMAIL PROTECTED]> [EMAIL PROTECTED] writes: Isn't the type signature you give incorrect? The parammeters m and n must have type a (where (a,a) is the index types of the arrays). I think your right, but as I can't seem to get to grips with the numeric hierarchy (anybody have a more detailed explanation of it?) I write with no signatures and see what the compiler produces. In this case Hbc 9.998.1 produced the signature I gave (Actually it has Integer instead of Int, but it was pointed out to me that Int is sufficient for indexing arrays) Well I got it wrong :-< It seems inbetween the .hi file and my mail buffer I managed to mangle the signature. Hbc _correctly_ derives the type as :- lu_decomp :: (Ix a, Num a, Fractional b, Enum a) => (Array (a, a) b) -> a -> a -> Array (a, a) b which I attempted to restrict to :- lu_decomp :: (Fractional b) => (Array (Int, Int) b) -> Int -> Int -> Array (Int, Int) b ^^^ ^^^ but mangaged to leave these in their original form (i.e. "a"). You'd think I'd know by now not to post untested code wouldn't you :-< sorry if I caused any confusion, bevan
