The non-empty package

[ Tags: bsd3, data, library ] [ Propose Tags ]

We provide the data type NonEmpty 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.

There are more such data types like Optional and Empty. Together with NonEmpty 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:

Related packages:


Versions 0.0, 0.1, 0.1.1, 0.1.2, 0.1.3, 0.2, 0.2.1, 0.3
Dependencies base (==4.*), containers (>=0.4 && <0.6), deepseq (>=1.3 && <1.5), QuickCheck (>=2.1 && <3), utility-ht (>=0.0.1 && <0.1) [details]
License BSD3
Author Henning Thielemann <>
Maintainer Henning Thielemann <>
Category Data
Home page
Source repository this: darcs get --tag 0.3
head: darcs get
Uploaded Thu Sep 1 17:25:58 UTC 2016 by HenningThielemann
Distributions LTSHaskell:0.3, NixOS:0.3, Stackage:0.3, Tumbleweed:0.3
Downloads 1817 total (16 in the last 30 days)
Rating 0.0 (0 ratings) [clear rating]
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2016-09-01 [all 1 reports]
Hackage Matrix CI




Maintainer's Corner

For package maintainers and hackage trustees