--- /dev/null
+{-# LANGUAGE NegativeLiterals #-}
+
+module Main(main) where
+
+import Data.Char (digitToInt)
+
+main :: IO ()
+main = do
+ digits <- readFile "data/advent01.txt"
+ print $ part1 digits
+ print $ part2 digits
+
+part1 :: String -> Int
+part1 = solve 1
+
+part2 :: String -> Int
+part2 digits = solve (length digits `div` 2) digits
+
+-- Verbose version
+-- solve n digits = sum $ map (digitToInt . fst)
+-- $ filter (uncurry (==))
+-- $ zip digits
+-- $ drop n
+-- $ cycle digits
+
+solve :: Int -> String -> Int
+solve n digits = sum $ zipWith (\a b -> if a == b then digitToInt a else 0) digits
+ $ drop n
+ $ cycle digits