Lenses for the time package.
These are lenses for the time package. Please see the README.md for more information.
timelens
This package contains lens
lenses for the time
package.
In theory, you can write lenses without depending on any lens library. However, that is more work, so this package simply depends on lens
. lens
is a heavyweight library, but it has nice things like Iso
s, which are used in this package, so I will stick with lens
rather than using a more lightweight lens library like microlens
.
You should also look at the lens-datetime
package:
https://www.stackage.org/package/lens-datetime
The main difference between lens-datetime
and this package is that this package does not attempt to do anything fancy. For example, lens-datetime
has typeclasses to allow you to access types of different values by using functions of the same name. timelens
does not attempt anything like this.
Some functions or values in timelens
do not obey the lens laws; everything in timelens
obeys the lens laws. timelens
does not attempt to do any sort of conversions or operations on dates or times.
lens-datetime
does not cover all types in the time
package, while timelens
does.
In short, lens-datetime
is more ambitious, while timelens
is pretty much what you would get if the time
library had included the Control.Lens.makeLenses
Template Haskell splices.
License
This package is released under the BSD3 license. Please see the LICENSE file.
Building this project
If you are viewing the source code repository, a .cabal
file might not be included. Please see the README.md in the main project directory for details on how to generate the .cabal
file.