Visiting Advent of Code 2024 out of boredom....
Golfing Haskell is barely fun anymore.

import Data.List
import Text.Printf

so = (.).fmap
(.:.) = (.).(.)
(.:..) = (.).flip (.)

main :: IO ()
main = parse >>= \[a,b] -> do
let sh f = (sum .:. f) a b
let p = sh .:.. printf "%s: %d\n"

p "Silver" $
zipWith $ abs .:. (-)
p "Gold" $
flip intersect.nub

parse :: IO [[Int]]
parse = so sort transpose.
so (so read words) lines
<$> readFile "ins.txt"