[Haskell-cafe] functional dependencies question

Neil Brown nccb2 at kent.ac.uk
Thu Jul 1 07:45:36 EDT 2010


On 01/07/10 12:37, Patrick Browne wrote:
> Why do some cases such as 1) fail to run even if they are the only
> instantiation.
>
> -- 1) Compiles but does not run
> instance LocatedAt  Int  String  where
>   spatialLocation(1)="home"
>    

That instance is fine.  I presume the problem is that you are trying to 
run this function using "spatialLocation 1" as the function call.  The 
problem with that is that the "1" part has type Num a => a, i.e. it can 
be any Num type.  Even though you only have one instance, that's not 
used to constrain the type for "1".  The call "spatialLocation (1::Int)" 
works correctly.  Looking at your other examples, all the ones that 
don't work have a numeric type for the parameter, so I suspect it is the 
same issue throughout.

Thanks,

Neil.


More information about the Haskell-Cafe mailing list