MyNixOS website logo
Description

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 Isos, 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.

Metadata

Version

0.2.0.2

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows