homplexity-0.4.6.0: lib/Language/Haskell/Homplexity/Utilities.hs
module Language.Haskell.Homplexity.Utilities(
sumOf
, maxOf
, declHeadName
) where
import Language.Haskell.Exts.Syntax (DeclHead(..), Name)
-- | Maximum of the results of mapping the function over the list.
maxOf :: (a -> Int) -> [a] -> Int
maxOf f = maximum . (0:). map f
-- | Sum the results of mapping the function over the list.
sumOf :: (a -> Int) -> [a] -> Int
sumOf f = sum . map f
-- | Get the name of a declaration.
declHeadName :: DeclHead l -> Name l
declHeadName (DHead _ name) = name
declHeadName (DHInfix _ _ name) = name
declHeadName (DHParen _ dh) = declHeadName dh
declHeadName (DHApp _ dh _) = declHeadName dh