left propagation of types