[Haskell] GHC Error question

Simon Peyton-Jones simonpj at microsoft.com
Mon Dec 11 07:45:26 EST 2006


Well it might not be ambiguous.  Consider
        instance C Int b where...

Simon

| -----Original Message-----
| From: glasgow-haskell-users-bounces at haskell.org [mailto:glasgow-haskell-users-bounces at haskell.org]
| On Behalf Of Ross Paterson
| Sent: 11 December 2006 12:41
| To: glasgow-haskell-users at haskell.org
| Subject: Re: [Haskell] GHC Error question
|
| On Mon, Dec 11, 2006 at 12:16:06PM +0000, Simon Peyton-Jones wrote:
| > [...] Just to summarise, the difficulty is this:
| >         I have a dictionary of type (C a b1)
| >         I need a dictionary of type (C a b2)
| >         There is no functional dependency between C's parameters
| >
| > PS: the complete program is this:
| >         class C a b where
| >                 op :: a -> a
| >
| >         f :: C a b => a -> a
| >         f x = op x
|
| That raises a point I'd wondered about.  GHC requires only that each
| type variable in the context be reachable from the type via a chain
| of assertions:
|
| http://www.haskell.org/ghc/docs/latest/html/users_guide/type-extensions.html#type-restrictions
|
| What's the rationale for that, rather than calling types like the above
| type of f ambiguous?
|
| The examples given in the User's Guide involve functional dependencies,
| albeit obscured by superclasses
|
| _______________________________________________
| Glasgow-haskell-users mailing list
| Glasgow-haskell-users at haskell.org
| http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


More information about the Glasgow-haskell-users mailing list