From a214d2142c1bafa71fe52cb3823351ff9322d336 Mon Sep 17 00:00:00 2001 From: Moritz Bruder Date: Thu, 12 Mar 2020 19:45:16 +0100 Subject: Add singleton to NonEmpty in libraries/base This adds a definition to construct a singleton non-empty list (Data.List.NonEmpty) according to issue #17851. --- libraries/base/Data/List/NonEmpty.hs | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'libraries/base/Data/List') diff --git a/libraries/base/Data/List/NonEmpty.hs b/libraries/base/Data/List/NonEmpty.hs index 61c1f3d414..1b80469003 100644 --- a/libraries/base/Data/List/NonEmpty.hs +++ b/libraries/base/Data/List/NonEmpty.hs @@ -42,6 +42,7 @@ module Data.List.NonEmpty ( , tail -- :: NonEmpty a -> [a] , last -- :: NonEmpty a -> a , init -- :: NonEmpty a -> [a] + , singleton -- :: a -> NonEmpty a , (<|), cons -- :: a -> NonEmpty a -> NonEmpty a , uncons -- :: NonEmpty a -> (a, Maybe (NonEmpty a)) , unfoldr -- :: (a -> (b, Maybe a)) -> a -> NonEmpty b @@ -168,6 +169,12 @@ last ~(a :| as) = List.last (a : as) init :: NonEmpty a -> [a] init ~(a :| as) = List.init (a : as) +-- | Construct a 'NonEmpty' list from a single element. +-- +-- @since 4.15 +singleton :: a -> NonEmpty a +singleton a = a :| [] + -- | Prepend an element to the stream. (<|) :: a -> NonEmpty a -> NonEmpty a a <| ~(b :| bs) = a :| b : bs -- cgit v1.2.1