Throw proper parse errors, stop using `error`
Remove dead code
Remove dead code
Stop using `error` when constraining patterns and when instantiating source types