16 Jan
2001
16 Jan
'01
9:06 p.m.
At 2001-01-16 10:23, Magnus Carlsson wrote:
You can use overloading for the definition of theValue instead:
class TheValue a where theValue :: a -> Maybe Int
instance TheValue Base where theValue _ = Nothing instance TheValue Derived where theValue x = Just (x.value)
Doesn't this imply that run-time type information is kept with the structs? Consider: d :: Derived d = struct value = 3 b :: Base b = d idb :: Base -> Base idb x = x f1 = theValue d f2 = theValue b f3 = theValue (idb d) f4 = theValue (idb b) What are the values of f1, f2, f3 & f4? -- Ashley Yakeley, Seattle WA