type t { int x; } type t2 <: t { int y; } type contains_t { t x; } class c() : t2 impl t2 { init int x; init int y; export t2 : x, y; } class cct() : contains_t impl contains_t { init t2 x; export contains_t : x; }