non-empty
Version 0.3 revision 0 uploaded by HenningThielemann.
Package meta
- Synopsis
- List-like structures with static restrictions on the number of elements
- Description
We provide the data type
NonEmpty
that allows to store a list-like structure with at least or exactlyn
elements, wheren
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.There are more such data types like
Optional
andEmpty
. Together withNonEmpty
you can define a list type for every finite set of admissible list lengths.The datatype can be combined with Lists, Sequences and Sets (from the
containers
package).The package needs only 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
mono-traversable
:Data.MinLen
: allows to specify a minimum number of elements using type families and works also for monomorphic data structures like ByteString
Related packages:
Stream
: Lists that contain always infinitely many elements.fixed-length
: Uses the data structure of this package and defines a closed-world class for fixed-length lists and an according index type.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.
- Author
- Henning Thielemann <haskell@henning-thielemann.de>
- Bug reports
- n/a
- Category
- Data
- Copyright
- n/a
- Homepage
- http://hub.darcs.net/thielema/non-empty/
- Maintainer
- Henning Thielemann <haskell@henning-thielemann.de>
- Package URL
- n/a
- Stability
- n/a