First version of expr type propagation finished, needs testing