Defunction-ify item modules, requires more cleanup

This commit is contained in:
2022-06-08 12:28:11 +01:00
parent d91a53f76c
commit bcbfd7d2fa
48 changed files with 762 additions and 740 deletions
+13 -4
View File
@@ -3,15 +3,24 @@ module Dodge.Module
, moduleStrings
) where
import Dodge.Data
--import Dodge.Combine.Module
import qualified Data.Map.Strict as M
import Control.Lens
import Data.Maybe
--moduleSizes :: Item -> Int
--moduleSizes = moduleFold (+) (^? modSize) 0
moduleSizes :: Item -> Int
moduleSizes = moduleFold (+) (^? modSize) 0
moduleSizes = length . _iyModules . _itType
--moduleStrings :: Item -> [String]
--moduleStrings = moduleFold (++) (^? modName) []
moduleStrings :: Item -> [String]
moduleStrings = moduleFold (++) (^? modName) []
moduleStrings = map show . M.elems . _iyModules . _itType
moduleFold :: (m -> m -> m) -> (ItemModule -> Maybe m) -> m -> Item -> m
moduleFold g f e = foldr (g . fromMaybe e . f) e . _itModules
--moduleFold :: (m -> m -> m) -> (ItemModule -> Maybe m) -> m -> Item -> m
--moduleFold g f e = foldr (g . fromMaybe e . f) e
-- . fmap fromModuleType
-- . _iyModules
-- . _itType