Polymorphism errors look strange in LSP
Suppose this:
let nyaa = List.fold 5
It will produce this error:
Invalid type(s)
Cannot unify int with ( ^gen#8050 * ^gen#8048 ) -> ^gen#8050.
But ligo compile contract, on the other hand, will produce:
Invalid type(s)
Cannot unify "int" with "( ^a * ^b ) -> ^a".
Hint: "^b", "^a" represent placeholder type(s).
Acceptance criteria
- We have better error messages for polymorphism in the language server.
- Tests added.