Interaction and ambiguous type variables
Malcolm Wallace
Malcolm.Wallace@cs.york.ac.uk
Thu, 3 Jul 2003 14:42:35 +0100
Ralf Hinze <ralf@informatik.uni-bonn.de> writes:
> I am posting the following bug report every once in a while.
>
> Main> mirror []
> ERROR - Cannot find "show" function for:
> *** Expression : mirror []
> *** Of type : [a]
>
> << Instructor:
> it's because `mirror []' has the polymorphic type `[a]' and the
> compiler cannot determine the `Show' instance for `a'.
It might be worth pointing out that, even though Hugs and ghci have
this problem, nhc98 (used interactively through 'hi') does not. It
follows your suggested solution:
> The general problem is that the expression submitted to Hugs or GHC has a
> polymorphic type *or* that a subexpression has a polymorphic type (as
> in the last example). A simple solution is to monomorphize the type
> instantiating all type variables to, say, the empty type `Void'.
except that nhc98 uses the in-scope defaulting rule (e.g. default
(Integer)) to select an arbitrary dictionary to plug in, rather than
introducing a new type. There are only rare cases in which the actual
dictionary matters, so this suffices for the beginner.
Regards,
Malcolm
_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs