, \zline{(contravariance)}
where and
Simple typing --
Delayed --
We have \zline{(more information)}
where
where
However \zline{(subtyping error)}
F-bounded constraint \n
Object instantiation:
for \n
We have because
with recursive types
Valid, because
However
int b;
public:
C() { ... }
bool eq(C& other) { return other.i == i && other.b == b; }
bool eq(P& other) { return other.i == i; }
};