timelens-0.2.0.2: README.md
# 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.