diff --git a/aoc.cabal b/aoc.cabal index 3173d5d..3919c77 100644 --- a/aoc.cabal +++ b/aoc.cabal @@ -49,6 +49,32 @@ library AoC.Y2023.D23 AoC.Y2023.D24 AoC.Y2023.D25 + AoC.Y2024 + AoC.Y2024.D01 + AoC.Y2024.D02 + AoC.Y2024.D03 + AoC.Y2024.D04 + AoC.Y2024.D05 + AoC.Y2024.D06 + AoC.Y2024.D07 + AoC.Y2024.D08 + AoC.Y2024.D09 + AoC.Y2024.D10 + AoC.Y2024.D11 + AoC.Y2024.D12 + AoC.Y2024.D13 + AoC.Y2024.D14 + AoC.Y2024.D15 + AoC.Y2024.D16 + AoC.Y2024.D17 + AoC.Y2024.D18 + AoC.Y2024.D19 + AoC.Y2024.D20 + AoC.Y2024.D21 + AoC.Y2024.D22 + AoC.Y2024.D23 + AoC.Y2024.D24 + AoC.Y2024.D25 AoC.Year other-modules: Paths_aoc diff --git a/data/Y2024/D01/riddle b/data/Y2024/D01/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2024/D02/riddle b/data/Y2024/D02/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2024/D03/riddle b/data/Y2024/D03/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2024/D04/riddle b/data/Y2024/D04/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2024/D05/riddle b/data/Y2024/D05/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2024/D06/riddle b/data/Y2024/D06/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2024/D07/riddle b/data/Y2024/D07/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2024/D08/riddle b/data/Y2024/D08/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2024/D09/riddle b/data/Y2024/D09/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2024/D10/riddle b/data/Y2024/D10/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2024/D11/riddle b/data/Y2024/D11/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2024/D12/riddle b/data/Y2024/D12/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2024/D13/riddle b/data/Y2024/D13/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2024/D14/riddle b/data/Y2024/D14/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2024/D15/riddle b/data/Y2024/D15/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2024/D16/riddle b/data/Y2024/D16/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2024/D17/riddle b/data/Y2024/D17/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2024/D18/riddle b/data/Y2024/D18/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2024/D19/riddle b/data/Y2024/D19/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2024/D20/riddle b/data/Y2024/D20/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2024/D21/riddle b/data/Y2024/D21/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2024/D22/riddle b/data/Y2024/D22/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2024/D23/riddle b/data/Y2024/D23/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2024/D24/riddle b/data/Y2024/D24/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2024/D25/riddle b/data/Y2024/D25/riddle new file mode 100644 index 0000000..e69de29 diff --git a/src/AoC.hs b/src/AoC.hs index 28ae754..5ce640f 100644 --- a/src/AoC.hs +++ b/src/AoC.hs @@ -15,6 +15,7 @@ import System.IO (hPutStrLn) import System.IO.Error qualified as IOError import AoC.Y2023 qualified as Y2023 +import AoC.Y2024 qualified as Y2024 runAoC :: (MonadIO m) => Year -> Day -> m (Either Text Solution) runAoC y d = do @@ -28,6 +29,7 @@ runAoCExample y d = do solve :: (MonadIO m) => Year -> Day -> Riddle -> m (Either Text Solution) solve Y2023 = Y2023.solve +solve Y2024 = Y2024.solve solve y = \_ _ -> pure $ Left $ show y <> ": not implementedi" handleError :: IOError.IOError -> IO () diff --git a/src/AoC/Y2024.hs b/src/AoC/Y2024.hs new file mode 100644 index 0000000..87b2b00 --- /dev/null +++ b/src/AoC/Y2024.hs @@ -0,0 +1,57 @@ +module AoC.Y2024 (solve) where + +import AoC.Day +import AoC.Riddle + +import AoC.Y2024.D01 qualified as D01 +import AoC.Y2024.D02 qualified as D02 +import AoC.Y2024.D03 qualified as D03 +import AoC.Y2024.D04 qualified as D04 +import AoC.Y2024.D05 qualified as D05 +import AoC.Y2024.D06 qualified as D06 +import AoC.Y2024.D07 qualified as D07 +import AoC.Y2024.D08 qualified as D08 +import AoC.Y2024.D09 qualified as D09 +import AoC.Y2024.D10 qualified as D10 +import AoC.Y2024.D11 qualified as D11 +import AoC.Y2024.D12 qualified as D12 +import AoC.Y2024.D13 qualified as D13 +import AoC.Y2024.D14 qualified as D14 +import AoC.Y2024.D15 qualified as D15 +import AoC.Y2024.D16 qualified as D16 +import AoC.Y2024.D17 qualified as D17 +import AoC.Y2024.D18 qualified as D18 +import AoC.Y2024.D19 qualified as D19 +import AoC.Y2024.D20 qualified as D20 +import AoC.Y2024.D21 qualified as D21 +import AoC.Y2024.D22 qualified as D22 +import AoC.Y2024.D23 qualified as D23 +import AoC.Y2024.D24 qualified as D24 +import AoC.Y2024.D25 qualified as D25 + +solve :: (MonadIO m) => Day -> Text -> m (Either Error Solution) +solve D01 = D01.solve +solve D02 = D02.solve +solve D03 = D03.solve +solve D04 = D04.solve +solve D05 = D05.solve +solve D06 = D06.solve +solve D07 = D07.solve +solve D08 = D08.solve +solve D09 = D09.solve +solve D10 = D10.solve +solve D11 = D11.solve +solve D12 = D12.solve +solve D13 = D13.solve +solve D14 = D14.solve +solve D15 = D15.solve +solve D16 = D16.solve +solve D17 = D17.solve +solve D18 = D18.solve +solve D19 = D19.solve +solve D20 = D20.solve +solve D21 = D21.solve +solve D22 = D22.solve +solve D23 = D23.solve +solve D24 = D24.solve +solve D25 = D25.solve diff --git a/src/AoC/Y2024/D01.hs b/src/AoC/Y2024/D01.hs new file mode 100644 index 0000000..508cbad --- /dev/null +++ b/src/AoC/Y2024/D01.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D01 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Y2024/D02.hs b/src/AoC/Y2024/D02.hs new file mode 100644 index 0000000..b4ca1ed --- /dev/null +++ b/src/AoC/Y2024/D02.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D02 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Y2024/D03.hs b/src/AoC/Y2024/D03.hs new file mode 100644 index 0000000..0e41568 --- /dev/null +++ b/src/AoC/Y2024/D03.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D03 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Y2024/D04.hs b/src/AoC/Y2024/D04.hs new file mode 100644 index 0000000..eaacb21 --- /dev/null +++ b/src/AoC/Y2024/D04.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D04 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Y2024/D05.hs b/src/AoC/Y2024/D05.hs new file mode 100644 index 0000000..0ea5b81 --- /dev/null +++ b/src/AoC/Y2024/D05.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D05 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Y2024/D06.hs b/src/AoC/Y2024/D06.hs new file mode 100644 index 0000000..92a5945 --- /dev/null +++ b/src/AoC/Y2024/D06.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D06 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Y2024/D07.hs b/src/AoC/Y2024/D07.hs new file mode 100644 index 0000000..064c7b0 --- /dev/null +++ b/src/AoC/Y2024/D07.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D07 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Y2024/D08.hs b/src/AoC/Y2024/D08.hs new file mode 100644 index 0000000..5da393e --- /dev/null +++ b/src/AoC/Y2024/D08.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D08 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Y2024/D09.hs b/src/AoC/Y2024/D09.hs new file mode 100644 index 0000000..2e03abe --- /dev/null +++ b/src/AoC/Y2024/D09.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D09 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Y2024/D10.hs b/src/AoC/Y2024/D10.hs new file mode 100644 index 0000000..cb666c3 --- /dev/null +++ b/src/AoC/Y2024/D10.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D10 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Y2024/D11.hs b/src/AoC/Y2024/D11.hs new file mode 100644 index 0000000..44ccaab --- /dev/null +++ b/src/AoC/Y2024/D11.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D11 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Y2024/D12.hs b/src/AoC/Y2024/D12.hs new file mode 100644 index 0000000..680e628 --- /dev/null +++ b/src/AoC/Y2024/D12.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D12 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Y2024/D13.hs b/src/AoC/Y2024/D13.hs new file mode 100644 index 0000000..b69f0df --- /dev/null +++ b/src/AoC/Y2024/D13.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D13 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Y2024/D14.hs b/src/AoC/Y2024/D14.hs new file mode 100644 index 0000000..29cbfd9 --- /dev/null +++ b/src/AoC/Y2024/D14.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D14 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Y2024/D15.hs b/src/AoC/Y2024/D15.hs new file mode 100644 index 0000000..16f8f89 --- /dev/null +++ b/src/AoC/Y2024/D15.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D15 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Y2024/D16.hs b/src/AoC/Y2024/D16.hs new file mode 100644 index 0000000..11f2ebf --- /dev/null +++ b/src/AoC/Y2024/D16.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D16 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Y2024/D17.hs b/src/AoC/Y2024/D17.hs new file mode 100644 index 0000000..1346a16 --- /dev/null +++ b/src/AoC/Y2024/D17.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D17 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Y2024/D18.hs b/src/AoC/Y2024/D18.hs new file mode 100644 index 0000000..67f8bb5 --- /dev/null +++ b/src/AoC/Y2024/D18.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D18 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Y2024/D19.hs b/src/AoC/Y2024/D19.hs new file mode 100644 index 0000000..5956915 --- /dev/null +++ b/src/AoC/Y2024/D19.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D19 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Y2024/D20.hs b/src/AoC/Y2024/D20.hs new file mode 100644 index 0000000..351b34e --- /dev/null +++ b/src/AoC/Y2024/D20.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D20 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Y2024/D21.hs b/src/AoC/Y2024/D21.hs new file mode 100644 index 0000000..8f54fee --- /dev/null +++ b/src/AoC/Y2024/D21.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D21 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Y2024/D22.hs b/src/AoC/Y2024/D22.hs new file mode 100644 index 0000000..4a05240 --- /dev/null +++ b/src/AoC/Y2024/D22.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D22 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Y2024/D23.hs b/src/AoC/Y2024/D23.hs new file mode 100644 index 0000000..9ea1b5b --- /dev/null +++ b/src/AoC/Y2024/D23.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D23 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Y2024/D24.hs b/src/AoC/Y2024/D24.hs new file mode 100644 index 0000000..35c22c8 --- /dev/null +++ b/src/AoC/Y2024/D24.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D24 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Y2024/D25.hs b/src/AoC/Y2024/D25.hs new file mode 100644 index 0000000..ac69aef --- /dev/null +++ b/src/AoC/Y2024/D25.hs @@ -0,0 +1,6 @@ +module AoC.Y2024.D25 (solve) where + +import AoC.Riddle + +solve :: (MonadIO m) => Text -> m (Either Text Solution) +solve _ = pure $ Left "not yet implemented" diff --git a/src/AoC/Year.hs b/src/AoC/Year.hs index 0576478..3a91d29 100644 --- a/src/AoC/Year.hs +++ b/src/AoC/Year.hs @@ -2,5 +2,6 @@ module AoC.Year (Year (..)) where data Year = Y0000 + | Y2024 | Y2023 deriving stock (Read, Show, Eq, Ord, Enum)