
Is http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extension... insufficiently clear? If so, let's clarify it. Simon | -----Original Message----- | From: Tyson Whitehead [mailto:twhitehead@gmail.com] | Sent: 10 January 2013 22:12 | To: glasgow-haskell-users@haskell.org | Cc: Richard Eisenberg; Martin Sulzmann; Simon Peyton-Jones | Subject: Class instance specificity order (was Re: Fundeps and type equality) | | On January 10, 2013 13:56:02 Richard Eisenberg wrote: | > Class instances that overlap are chosen among by order of specificity; | | Sorry to jump in the middle here, but this caught my attention as this sort of | specificity determination is exactly what I had in mind when I was working on | my "The shape of things: a reason for type preference" paper. | | I would love to know what approach GHC is currently taking to determine this. | The document gives the example of matching C Int [Int] against | | C Int a | C a Bool | C Int [a] | C Int [Int] | | This is easy though. Obviously the last match is best because it is exact. | What if we have something like C Int [[Int]] against | | C Int b | C a [[b]] | | though. How is the best match determined in this case? | | Thanks! -Tyson