Hi.

Another way is to take advantage of Haskell's laziness:

class Foo a where
    foo :: a -> Int

data Oof1 = Oof1 Int
instance Foo Oof1 where foo (Oof1 i) = i

data Oof2 = Oof2 Int
instance Foo Oof2 where foo (Oof2 i) = i

list1 = [foo (Oof1 10), foo (Oof2 20)]


That's all it takes. The applications of foo in list1 don't get evaluated until list1 is used, e.g. by sum.

Regards,
Tom


_______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to