cabal-version: 2.2 name: neononempty version: 1.1.0 synopsis: NonEmpty lists that look [more, like, this] homepage: https://github.com/414owen/neononempty license: BSD-3-Clause license-file: LICENSE author: Owen Shepherd maintainer: owen@owen.cafe category: Data build-type: Simple extra-doc-files: CHANGELOG.md tested-with: GHC==9.6.2 , GHC==9.4.5 , GHC==9.2.8 , GHC==9.0.2 , GHC==8.10.7 , GHC==8.8.4 , GHC==8.6.5 , GHC==8.4.4 , GHC==8.2.2 , GHC==8.0.2 description: This package provides @NonEmpty@, an alternative to the NonEmpty type in base. . It has a few differences from base's NonEmpty: . * It has @Show@ and @Read@ instance similar to that of normal lists * It has a 100% safe API * It has a few added\/removed\/updated functions (see @Data.List.NeoNonEmpty@'s module docs) * New functions aren't tied to new versions of GHC/base . The show instance is the original raison d'ĂȘtre. When scanning textual data, the brain can interpret uniformity more quickly. Which do you think is easier to scan? . > x :| [y, z] > [x, y, z] . Now imagine this in various fields of a large compound structure, and you have two of them, and you're trying to find the difference. . >>> :set -XOverloadedLists >>> aNonEmpty [1, 2, 3] [1,2,3] >>> read "[1, 2, 3]" :: NonEmpty Int [1,2,3] common warnings ghc-options: -Wall source-repository head type: git location: https://github.com/414owen/neononempty.git library import: warnings exposed-modules: Data.List.NeoNonEmpty -- other-modules: -- other-extensions: build-depends: base >= 4.9.0.0 && < 5 -- We don't *require* a specific version of base-compat -- but we leverage it if present , base-compat >= 0 && < 1 hs-source-dirs: src default-language: Haskell98 test-suite spec import: warnings type: exitcode-stdio-1.0 hs-source-dirs: test main-is: Test.hs default-language: Haskell98 build-depends: base >= 4.9.0.0 && < 5 , hedgehog >= 0.6 && < 2 , neononempty >= 1.0.0 && < 2