rio-0.0.3.0: src/RIO/List.hs
-- | @List@. Import as:
--
-- > import qualified RIO.List as L
module RIO.List
( module Data.List
, stripSuffix
, dropPrefix
, dropSuffix
) where
import Data.List
import Data.Maybe (fromMaybe)
-- | Remove the suffix from the given list, if present
--
-- @since 0.0.0
stripSuffix :: Eq a
=> [a] -- ^ suffix
-> [a]
-> Maybe [a]
stripSuffix suffix list =
fmap reverse (stripPrefix (reverse suffix) (reverse list))
-- | Drop prefix if present, otherwise return original list.
--
-- @since 0.0.0.0
dropPrefix :: Eq a
=> [a] -- ^ prefix
-> [a]
-> [a]
dropPrefix prefix t = fromMaybe t (stripPrefix prefix t)
-- | Drop prefix if present, otherwise return original list.
--
-- @since 0.0.0.0
dropSuffix :: Eq a
=> [a] -- ^ suffix
-> [a]
-> [a]
dropSuffix suffix t = fromMaybe t (stripSuffix suffix t)