struct { struct And
(p: P, q: Q) { left = Fn<>() -> P { return p; }; right = Fn<>() -> Q { return q; }; }; AndLeft = Fn
(h: And
) -> P { return h.p; }; } main;