BSD-3-Clause licensed by Don Stewart, Oleg Grenrus
Maintained by Oleg Grenrus
This version can be pinned in stack with:dlist-nonempty-0.1.3@sha256:7bbc2317b5972b3f7848a7e8e38536713a9f0ec1d7ddaef456eeceb352b8d281,2847

Module documentation for 0.1.3

Difference Lists in Haskell

The NonEmpty version of difference lists: list-like type supporting O(1) append ans snoc operations.

This is a fork of a dlist package.

benchmarking right-append/List
time                 13.63 ms   (13.36 ms .. 14.04 ms)
                     0.997 R²   (0.994 R² .. 0.999 R²)
mean                 13.60 ms   (13.49 ms .. 13.76 ms)
std dev              332.4 μs   (240.8 μs .. 409.5 μs)

benchmarking right-append/NonEmpty
time                 31.87 ms   (25.83 ms .. 35.97 ms)
                     0.927 R²   (0.890 R² .. 0.969 R²)
mean                 23.76 ms   (21.98 ms .. 26.23 ms)
std dev              4.648 ms   (3.053 ms .. 5.538 ms)
variance introduced by outliers: 78% (severely inflated)

benchmarking right-append/DList
time                 38.18 μs   (38.09 μs .. 38.32 μs)
                     1.000 R²   (0.999 R² .. 1.000 R²)
mean                 38.18 μs   (38.03 μs .. 38.46 μs)
std dev              667.8 ns   (325.0 ns .. 1.164 μs)
variance introduced by outliers: 13% (moderately inflated)

benchmarking right-append/NonEmptyDList
time                 33.58 μs   (33.30 μs .. 33.89 μs)
                     0.999 R²   (0.999 R² .. 1.000 R²)
mean                 33.86 μs   (33.67 μs .. 34.14 μs)
std dev              801.9 ns   (616.6 ns .. 1.240 μs)
variance introduced by outliers: 22% (moderately inflated)

benchmarking right-append/DNonEmpty
time                 79.79 μs   (79.60 μs .. 80.10 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 80.52 μs   (80.23 μs .. 80.92 μs)
std dev              1.162 μs   (757.0 ns .. 1.795 μs)

Changes

0.1.3

  • Use foldable1-classes-compat in additional to (old) semigroupoids as Foldable1 provider.

0.1.2

  • Mark modules as explicitly Safe or Unsafe
  • Bump lower bounds
  • Drop dependency on base-compat
  • More efficient conversion to DList

0.1.1

  • Support semigroupoids-5.2.1