@hackage non-empty0.1
List-like structures with static checks on the number of elements
Installation
Dependencies (3)
- QuickCheck >=2.1 && <3
- base >=4 && <5
- utility-ht >=0.0.1 && <0.1 Show all…
Dependents (47)
@hackage/linear-circuit, @hackage/midi-music-box, @hackage/comfort-array, @hackage/synthesizer-llvm, @hackage/tagchup, @hackage/llvm-extra, Show all…
We provide a data type that allows to store a list-like structure
with at least or exactly n elements,
where n is fixed in the type in a kind of Peano encoding
and is usually small.
The datatype is intended to increase safety
by making functions total that are partial on plain lists.
E.g. on a non-empty list, head and tail are always defined.
The package uses Haskell 98.
Similar packages:
semigroups,semigroupoids: restricted to lists, minimum number of elements: 1, provides more type classes tailored to the use of non-empty lists.NonEmptyList: restricted to lists, minimum number of elements: 1NonEmpty: restricted to lists, minimum number of elements: 1, designed for unqualified use of identifiersCardinality:NeverEmptyList
Related packages:
Stream: Lists that contain always infinitely many elements.fixed-list: Uses the same data structure as this package but is intended for fixing the number of elements in a list. Requires multi-parameter type classes with functional dependencies.