This is not really observable (unless the printing raises an exception) but the typechecker will routinely render terms to put into error message guards, which is probably very wasteful. Giving that resugaring/printing should be pure, we could thunk these computations and be more efficient in the vast majority of cases that do not raise an error.
This is not really observable (unless the printing raises an exception) but the typechecker will routinely render terms to put into error message guards, which is probably very wasteful. Giving that resugaring/printing should be pure, we could thunk these computations and be more efficient in the vast majority of cases that do not raise an error.