data Apa a = XX a | YY (b, b -> Int) f (XX a) = a f (YY (c,f)) = f c apa = YY ("apa", length) apa' = XX 7 data Bepa > Apa (a,a->Int) = ZZ g ZZ = 0 g (YY (c,f)) = f c g (XX (c,f)) = f c -- g (XX a) = a bepa = XX (False, const 1)