I didn't say Haskell's error messages are bad. If you stick with explicit types on your functions and no language extension they are absolutely great. I wanted to point out that type checking errors with lens are hard unless you really know how all the different type aliases relate to each other. It was a few years ago so maybe things are better.
C++ also had this problem with the standard containers. However it is much easier to get what is a dictionary compared to a random "optic".
C++ also had this problem with the standard containers. However it is much easier to get what is a dictionary compared to a random "optic".