Should the parser API figure out types instead, and we maintain the same signatures and public API as before?