--- /dev/null
+-- Writeup at https://work.njae.me.uk/2022/12/01/advent-of-code-2022-day-1/
+
+import System.Environment
+import Data.List
+import Data.List.Split
+
+main :: IO ()
+main =
+ do dataFileName <- getDataFileName
+ numStrs <- readFile dataFileName -- "data/advent01.txt"
+ let calories = fmap (fmap (read @Int)) $ splitWhen null $ lines numStrs
+ print $ part1 calories
+ print $ part2 calories
+
+getDataFileName :: IO String
+getDataFileName =
+ do args <- getArgs
+ progName <- getProgName
+ let baseDataName = if null args
+ then progName
+ else head args
+ let dataFileName = "data/" ++ baseDataName ++ ".txt"
+ return dataFileName
+
+part1 :: [[Int]] -> Int
+part1 = maximum . fmap sum
+
+part2 :: [[Int]] -> Int
+part2 = sum . take 3 . reverse . sort . fmap sum
+