Good compiler error messages are hard. LtU: https://lambda-the-ultimate.org/node/5280#comment-90836 if two parts of a function use different types, what do you highlight?