
On Thu, Feb 26, 2009 at 7:25 PM, Thomas Davie
I'm not 100% certain here, so someone may correct me, but I think this is what's going on: [snip]
Yep, that's right. Is it just me or the monomorphism restriction suddenly became the hot topic here on beginners?
Another way to write it ofc would simply be uncurry (==).
Better yet, write a type signature. I highly recommend writing type signatures for *all* top-level definitions, including non-exported ones: - You avoid most cases where the monomorphism restriction would bother you. - You avoid type errors on other functions (sometimes you make a mistake but the code type checks with a wrong signature, and the type error shows up only when you use the function elsewhere). - It gives you some insights before implementing, and helps whoever reads your code. - It allows you to specialize the code when polymorphism is not needed. Probably there are other reasons as well, but these are the most prominent. -- Felipe.