[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