struct Apa a = xx :: a -> a yy :: b -> b struct Bepa < Apa a = zz :: Int f s = (s.yy 'X', s.yy True) apa x = struct xx = \a -> x yy = \b -> b bepa x = struct xx = \a -> a yy = \b -> b -- \b -> x zz = 1 g s = (s.xx 'X', s.xx True, s.zz)