{- | Copyright : Flipstone Technology Partners 2023 License : MIT Stability : Stable @since 1.0.0.0 -} module Orville.PostgreSQL.Internal.Extra.NonEmpty ( foldl1' ) where import qualified Data.Foldable as Fold import Data.List.NonEmpty (NonEmpty ((:|))) foldl1' :: (a -> a -> a) -> NonEmpty a -> a foldl1' :: forall a. (a -> a -> a) -> NonEmpty a -> a foldl1' a -> a -> a f (a first :| [a] rest) = (a -> a -> a) -> a -> [a] -> a forall b a. (b -> a -> b) -> b -> [a] -> b forall (t :: * -> *) b a. Foldable t => (b -> a -> b) -> b -> t a -> b Fold.foldl' a -> a -> a f a first [a] rest