foundation-0.0.4: Foundation/Boot/List.hs
module Foundation.Boot.List
( length
, sum
) where
import Foundation.Internal.Base
import Foundation.Numerical.Additive
-- | Compute the size of the list
length :: [a] -> Int
length [] = 0
length (_:xs) = succ (length xs)
-- | Sum the element in a list
sum :: Additive n => [n] -> n
sum [] = azero
sum (i:is) = loop i is
where
loop !acc [] = acc
loop !acc (x:xs) = loop (acc+x) xs
{-# INLINE loop #-}