{-# LANGUAGE OverloadedStrings #-} module AoC ( defaultMain, ) where import AoC.Day import AoC.Riddle import AoC.Year import Control.Exception qualified as Exception import System.IO (hPutStrLn) import System.IO.Error qualified as IOError import AoC.Y2023 qualified as Y2023 runAoC :: (MonadIO m) => [String] -> m () runAoC _args = do riddle <- loadRiddle Y2023 D01 result <- Y2023.solve D01 riddle print result handleError :: IOError.IOError -> IO () handleError e = do hPutStrLn stderr $ "I ran into an issue: " <> show e defaultMain :: IO () defaultMain = do args <- getArgs Exception.catch (runAoC args) handleError