A newtype over 'Bool' with a better 'Vector' instance: 8x less memory, up to
3500x faster.
The <https://hackage.haskell.org/package/vector vector> package represents
unboxed arrays of 'Bool's spending 1 byte (8 bits) per boolean. This library
provides a newtype wrapper 'Bit' and a custom instance of an unboxed 'Vector',
which packs bits densely, achieving an __8x smaller memory footprint.__ The
performance stays mostly the same; the most significant degradation happens for
random writes (up to 10% slower). On the other hand, for certain bulk bit
operations 'Vector' 'Bit' is up to 3500x faster than 'Vector' 'Bool'.
=== Thread safety
* "Data.Bit" is faster, but writes and flips are not thread-safe. This is
because naive updates are not atomic: they read the whole word from memory,
then modify a bit, then write the whole word back. Concurrently modifying
non-intersecting slices of the same underlying array may also lead to
unexpected results, since they can share a word in memory. *
"Data.Bit.ThreadSafe" is slower (usually 10-20%), but writes and flips are
thread-safe. Additionally, concurrently modifying non-intersecting slices of
the same underlying array works as expected. However, operations that affect
multiple elements are not guaranteed to be atomic.
=== Similar packages
* <https://hackage.haskell.org/package/bv bv> and
<https://hackage.haskell.org/package/bv-little bv-little> do not offer mutable
vectors.
* <https://hackage.haskell.org/package/array array> is memory-efficient for
'Bool', but lacks a handy 'Vector' interface and is not thread-safe.
Paths come from the repository package-file index for the observed builds. They describe archive/package associations, not every file that will exist on a running system after maintainer scripts, alternatives, generated state, diversions, or installation choices.
Each row is recorded package-index metadata for one version, architecture, suite, and repository. Names, URLs, and sizes are source-reported; a link is a potentially mutable retrieval location, not an OpenFactory redistribution claim or proof that OpenFactory retained the artifact bytes.