Use a time unit class, but hold a concrete time type

[[ 🗃 ^NEBKr time-interval ]] :: [📥 Inbox] [📤 Outbox] [🐤 Followers] [🤝 Collaborators] [🛠 Changes]

Clone

HTTPS: darcs clone https://vervis.peers.community/repos/NEBKr

SSH: darcs clone USERNAME@vervis.peers.community:NEBKr

Tags

TODO

time-interval.cabal

name:                time-interval
version:             0.1.1
synopsis:            Use a time unit class, but hold a concrete time type.
description:
  Two common ways to represent and hold short time intervals seem to be:
  .
  1. Hold time in microseconds as an 'Int' or 'Integer'
  .
  2. Use time units abstraction, e.g. see the time-units package
  .
  While the second option is a great abstraction to use in APIs, it works for
  datatypes a bit less well than for function types. That's because a datatype
  which a 'Data.Time.Units.TimeUnit' field suddenly becomes polymorphic over
  that field, and all function type signatures involving that datatype need to
  be updated. This is less an issue for functions, because you don't specify
  the type of every function at the call site.
  .
  Perhaps there is a solution for that which involves datatype related
  language extensions, but this package tries to offer a simple clean solution
  as follows. You store time in your datatype as an integer, but it is wrapped
  by an opaque 'Data.Time.Interval.TimeInterval' type. You then get the best of
  both worlds:
  .
  * On one hand, you can set the time field using any time unit thanks to the
    time-units package, so you get a nice abstraction
  .
  * On the other hand, your datatype holds a concrete time type
  .
  The time type can be equally used to represent time intervals, time durations
  and generally time lengths. But since high precision is used (microseconds),
  you'll probably want this library for short time lengths (at most seconds,
  minutes, hours). For calendar based and related time functions and types, see
  the @time@ package.
homepage:            http://hub.darcs.net/fr33domlover/time-interval
bug-reports:         mailto:fr33domlover@riseup.net
license:             PublicDomain
license-file:        COPYING
author:              fr33domlover
maintainer:          fr33domlover@riseup.net
copyright:           ♡ Copying is an act of love. Please copy, reuse and share.
category:            Data
build-type:          Simple
extra-source-files:  AUTHORS ChangeLog COPYING INSTALL NEWS.md README.md
cabal-version:       >=1.10

source-repository head
  type:                darcs
  location:            http://hub.darcs.net/fr33domlover/time-interval

library
  exposed-modules:     Data.Time.Interval
  -- other-modules:       
  -- other-extensions:    
  build-depends:       base       >=4.7 && <5
                     , time-units
  hs-source-dirs:      src
  default-language:    Haskell2010
  ghc-options:         -Wall

[See repo JSON]