I believe this is caused by type equalities that are introduced by the Type a argument. In tr2 you get something like a ~ Int or a ~ String, allowing the function to type check. In tr1 that equality is never introduced so the type checker thinks a and Int are distinct types.
But I'm sure someone else can provide a better (more correct) explanation. _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
