
On 30-Jan-2001, Ashley Yakeley
At 2001-01-17 17:03, Lennart Augustsson wrote:
You seem to want dynamic type tests. ... You might want to look at existential types; it is a similar feature.
I seem to run into a similar problem:
-- class BaseClass s data Base = forall a. BaseClass a => Base a
class (BaseClass s) => DerivedClass s data Derived = forall a. DerivedClass a => Derived a
upcast :: Derived -> Base upcast (Derived d) = Base d
downcast :: Base -> Maybe Derived --
How do I define downcast?
class BaseClass s where
downcast_to_derived :: s -> Maybe Derived
--
Fergus Henderson