module Main where import Data.Text (Text) import Utils (readInput) --import qualified Day01 --import qualified Day02 --import qualified Day03 --import qualified Day04 import qualified Day05 run :: (Show b, Show c) => Int -> (Text -> Either String a) -> (a -> b) -> (a -> c) -> IO () run day parse solveA solveB = do text <- readInput day case parse text of Left err -> putStrLn err Right re -> do putStrLn $ "Day " <> show day print . solveA $ re print . solveB $ re main :: IO () main = do --run 1 Day01.parse Day01.solveA Day01.solveB --run 2 Day02.parse Day02.solveA Day02.solveB --run 3 Day03.parse Day03.solveA Day03.solveB --run 4 Day04.parse Day04.solveA Day04.solveB run 5 Day05.parse Day05.solveA Day05.solveB pure ()