tighten up type expression parser