non-empty: List-like structures with static checks on the number of elements

[ bsd3, data, library ] [ Propose Tags ]

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: 1

  • NonEmpty: restricted to lists, minimum number of elements: 1, designed for unqualified use of identifiers

  • Cardinality: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.


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Versions [RSS] 0.0, 0.1, 0.1.1, 0.1.2, 0.1.3, 0.2, 0.2.1, 0.3,, 0.3.1, 0.3.2, 0.3.3, 0.3.4, 0.3.5
Dependencies base (>=4 && <5), QuickCheck (>=2.1 && <3), utility-ht (>=0.0.1 && <0.1) [details]
License BSD-3-Clause
Author Henning Thielemann <>
Maintainer Henning Thielemann <>
Category Data
Home page
Source repo this: darcs get --tag 0.1.1
head: darcs get
Uploaded by HenningThielemann at 2013-06-11T21:40:35Z
Distributions LTSHaskell:0.3.5, NixOS:0.3.5, Stackage:0.3.5
Reverse Dependencies 23 direct, 19 indirect [details]
Downloads 10196 total (63 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]