module Dodge.Module ( moduleSizes , moduleStrings ) where import Dodge.Data import Control.Lens import Data.Maybe moduleSizes :: Item -> Int moduleSizes = moduleFold (+) (^? modSize) 0 moduleStrings :: Item -> [String] moduleStrings = moduleFold (++) (^? modName) [] moduleFold :: (m -> m -> m) -> (ItemModule -> Maybe m) -> m -> Item -> m moduleFold g f e = foldr (g . fromMaybe e . f) e . _itModules