<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7654.12">
<TITLE>RE: [Haskell-cafe] [] == []</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->
<P><FONT SIZE=2>f''' = ([]::[()]) == ([]::[()])<BR>
<BR>
(Very pretty.)<BR>
<BR>
So why doesn't ghc have 'default' instances?<BR>
<BR>
-----Original Message-----<BR>
From: Eugene Kirpichov [<A HREF="mailto:ekirpichov@gmail.com">mailto:ekirpichov@gmail.com</A>]<BR>
Sent: Fri 29/05/2009 10:51<BR>
To: Paul Keir<BR>
Cc: haskell-cafe@haskell.org<BR>
Subject: Re: [Haskell-cafe] [] == [][MESSAGE NOT SCANNED]<BR>
<BR>
2009/5/29 Paul Keir <pkeir@dcs.gla.ac.uk>:<BR>
> Hi all,<BR>
><BR>
> GHC is not happy with this:<BR>
><BR>
> f = [] == []<BR>
<BR>
This fails because GHC doesn't know which 'a' you mean, and can't<BR>
choose an Eq instance.<BR>
<BR>
><BR>
> nor this:<BR>
><BR>
> f' = ([]::(Eq a) => [a]) == ([]::(Eq a) => [a])<BR>
><BR>
<BR>
This fails for the same reason.<BR>
<BR>
> but this is OK:<BR>
><BR>
> f'' = ([]::[Integer]) == ([]::[Integer])<BR>
><BR>
> GHCI is comfortable with [] == [], so why not GHC? 'Just curious.<BR>
<BR>
Because GHCI has some 'default' instances, whereas GHC doesn't. This<BR>
time, it probably chooses a=().<BR>
<BR>
><BR>
> Cheers,<BR>
> Paul<BR>
><BR>
> _______________________________________________<BR>
> Haskell-Cafe mailing list<BR>
> Haskell-Cafe@haskell.org<BR>
> <A HREF="http://www.haskell.org/mailman/listinfo/haskell-cafe">http://www.haskell.org/mailman/listinfo/haskell-cafe</A><BR>
><BR>
><BR>
<BR>
<BR>
<BR>
--<BR>
Eugene Kirpichov<BR>
Web IR developer, market.yandex.ru<BR>
<BR>
<BR>
</FONT>
</P>
</BODY>
</HTML>