basic type propagation