C = \%l( self ).P( self ) \with { b = true, eq = \%l(o).(o.i = self.i and o.b = self.b) }
\Y(P) : %t where %t = %m %a.{ i:int, eq:%a -> bool } \Y(C):%s where %s = %m %a.{ i:int, id:%a -> bool, b: bool } However %s \not<= %t \zline{(subtyping error)} slide: Object inheritance -- contravariance