Handle constrained types better