-- i found out that intersect exists so i redid day 3 import Data.Char import Data.List import GHC.Utils.Misc getCharPriority c | isLower c = fromEnum c - 96 | isUpper c = fromEnum c - 64 + 26 | otherwise = undefined findDuplicate :: [String] -> Char findDuplicate [l1, l2, l3] = only $ l1 `intersect` l2 `intersect` l3 findDuplicate _ = undefined main = interact $ show . sum . map (getCharPriority . findDuplicate) . chunkList 3 . lines