replaced lval internals with union of types