O'Haskell OOP Polymorphic Functions
Ashley Yakeley
ashley@semantic.org
Tue, 16 Jan 2001 14:52:35 -0800
At 2001-01-16 14:36, Tom Pledger wrote:
>Here's a similar example using type-substitution overlapping:
>
> instance TheValue Char where ...
> instance Monad m => TheValue (m Char) where ...
> instance TheValue a => TheValue (Maybe a) where ...
>
> trouble = theValue (Just 'b')
Apparently this is not good Haskell syntax. I tried compiling this in
Hugs:
class TheValue a where theValue :: a -> Int
instance TheValue Char where theValue _ = 0
instance (Monad m) => TheValue (m Char) where theValue _ = 1 --
error here
instance (TheValue a) => TheValue (Maybe a) where theValue _ = 2
trouble = theValue (Just 'b')
I got a syntax error:
(line 3): syntax error in instance head (variable expected)
--
Ashley Yakeley, Seattle WA