On Tue, Jan 27, 2015 at 3:47 PM, Edward Kmett <ekmett@gmail.com> wrote:
We can make up our own combinators for putting these things together, but we can't use (.) from the Prelude or even from Control.Category.
Is this the only reason *not* to have a data type? (Sorry, I wasn't totally following the GADT-nastics!) That is, if, for a moment, we just assume a different operator for composing lenses, then will a data/newtype work? Now, *if* (as I understand it), under IV (assuming it work), it works for lens libraries iff they use a data/newtype for the lens (so that their instance is *the* instance for ->, I'm guessing)...... *then*, I say using a different operator for compose is a small price to pay. (Well, as I said before, I'd actually prefer a different compose operator!) Mind you, I might be totally mis-understanding the arguments and reasoning!