> You could address this with newtypes but you’d lose expressivity and performance.
optics uses newtypes. It loses infinitesimally in expressivity and not at all in performance, as far as I am aware. What were you thinking of?
I could be wrong (It's a common occurrence!), but I thought a lot of the lens perf relied on inlining that isn't as easy to pull off with a newtype/profunctor design. Can't find any references for performance comparisons.
I think the real problem with lens is: the type errors you get are completely unworkable. You could address this with newtypes but you’d lose expressivity and performance. Basically lens is at the bleeding edge of what a functional compiler can cope with.
It’d be an interesting research problem to see if this can be fixed.