[Haskell-beginners] Typeclasses and "inheritance"
Patrick LeBoutillier
patrick.leboutillier at gmail.com
Thu Jul 23 10:55:59 EDT 2009
Hi,
I'm playing around with typeclasses and trying to a feel on how you
implement "inheritance"
(not sure if that's the good word here) in Haskell. I have the following
code that doesn't compile:
class (Show a) => IPHost a where
class (Show a) => IPMask a where
class IPAddr a where
host :: (IPHost b) => a -> b
mask :: (IPMask b) => a -> b
showIPAddr :: (IPAddr a) => a -> String
showIPAddr a = (show . host $ a) ++ "/" ++ (show . mask $ a)
ghci says:
Net/IP.hs:23:23:
Ambiguous type variable `b' in the constraint:
`IPHost b' arising from a use of `host' at Net/IP.hs:23:23-26
Probable fix: add a type signature that fixes these type variable(s)
Net/IP.hs:23:51:
Ambiguous type variable `b1' in the constraint:
`IPMask b1' arising from a use of `mask' at Net/IP.hs:23:51-54
Probable fix: add a type signature that fixes these type variable(s)
What exactly does this error mean in this case? It's no tclear to me what
needs to be made more specific. Am I approaching the problem in the wrong
way?
Any help is appreciated.
Thanks,
Patrick
--
=====================
Patrick LeBoutillier
Rosemère, Québec, Canada
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/beginners/attachments/20090723/c8c254d4/attachment.html
More information about the Beginners
mailing list