I still think that in many projects users want to simply use 1-2 predefined lenses (such as e.g. Data.Aeson.Lens), and it's nice to have things like .~.
To avoid extra dependencies, we can implement those operators by ourselves.
To avoid name conflicts, we can export those operators in Universum.Lens which would be not exported by Universum by default.
We export
^.
,.~
,type Lens
, and some other useful lens-related things. CurrentlyAs in https://github.com/serokell/universum/issues/182, this leads to a dependency on
microlens
(which is not good), and to names conflict withControl.Lens
(which is also bad), so those reexports are marked as deprecated, and in https://github.com/serokell/universum/issues/268 we want to completely remove them.I still think that in many projects users want to simply use 1-2 predefined lenses (such as e.g.
Data.Aeson.Lens
), and it's nice to have things like.~
.To avoid extra dependencies, we can implement those operators by ourselves.
To avoid name conflicts, we can export those operators in
Universum.Lens
which would be not exported byUniversum
by default.