The list of packages that define this type is pretty messy in itself: there are at least six of them:
The Haskell Wiki has a whole page about non-empty lists.
Your question: why are non-empty lists not in the base package more difficult to answer. But the type is an instance of many useful classes from the database ( Foldable , Zip ), so the mechanism for their use already exists, and for this you need only a small number of instance definitions.
source share