
15 Jun
2007
15 Jun
'07
9:24 p.m.
I'm learning Haskell. I was surprised that the following example did not compile: data Vector2 = Vector2 { x :: Float, y :: Float } data Vector3 = Vector3 { x :: Float, y :: Float, z :: Float } error: "Multiple declarations of `Main.x'" This seems to be a known issue and if I understand it correctly it has to do with the fact that Haskell does not support function general overloading ala C++. One either has to use type classes, or put each record in a separate module and fiddle with the qualified namespaces. I read multiple papers with proposals to fix this, but does GHC implement any of these? Thanks, Peter