Closed ehird closed 11 years ago
I like Iso
but then Mirror
goes well with the optics-based terminology. On the other hand it could get a bit confusing with the existing use of reflect*
for reified lenses? Or are those going away?
The ReifiedFoo types will remain for the foreseeable future. Cloning a lens is slower than working with a ReifiedLens
, its just more convenient to pass around Loupe
s and their ilk since you can still work with them.
:-1: Iso gives me a much better intuition for what the type is for than mirror does, so I'd vote against this change for what it's worth. As far as I can see, changing the name just gives the library a cute naming theme, but doesn't make things easier and makes an unnecessary API change.
I'm also a :-1: at this point. I think its a cute naming trick and it /would/ slightly resolve the facts that our Isos are both an abbreviation (blech) and not what someone thinks of when they go think of a real 'isomorphism'.
But while consistency would be nice, but it comes off as a gratuitous change for change's sake now that we have actual users, and Iso carries with it pre-existing connotations that lead the user to the right understanding. Mirror requires you to go think about a new metaphor.
This would avoid the ugly
Iso
abbreviation that lens tries to make a point of avoiding, and would analogise nicely with the concepts ofLens
andPrism
.The downside is that a lot of people already know what an isomorphism is, though they're probably only familiar with the
SimpleIso
version in Haskell.