About "class Coerce a b" - errata
Nick Name
nick.name@inwind.it
Fri, 21 Feb 2003 08:10:28 +0100
On Fri, 21 Feb 2003 08:05:37 +0100
Nick Name <nick.name@inwind.it> wrote:
> -- Does not type if overlapping instances are allowed
> --
> --instance Functor SList where
> -- fmap f End = End
> -- fmap f (a:::as) = (call f a):::(fmap f as)
I skipped the declaration of SList, which is the coolest part of the
story to my eyes:
data SList a = forall b . (Subtype b a) => (:::) b (SList a) | End
This is a list holding values of subtypes of a.
Vincenzo