diff --git a/aoc.cabal b/aoc.cabal index 52b481c..a4cafbb 100644 --- a/aoc.cabal +++ b/aoc.cabal @@ -21,6 +21,32 @@ library AoC.Day AoC.Riddle AoC.Util + AoC.Y2023 + AoC.Y2023.D01 + AoC.Y2023.D02 + AoC.Y2023.D03 + AoC.Y2023.D04 + AoC.Y2023.D05 + AoC.Y2023.D06 + AoC.Y2023.D07 + AoC.Y2023.D08 + AoC.Y2023.D09 + AoC.Y2023.D10 + AoC.Y2023.D11 + AoC.Y2023.D12 + AoC.Y2023.D13 + AoC.Y2023.D14 + AoC.Y2023.D15 + AoC.Y2023.D16 + AoC.Y2023.D17 + AoC.Y2023.D18 + AoC.Y2023.D19 + AoC.Y2023.D20 + AoC.Y2023.D21 + AoC.Y2023.D22 + AoC.Y2023.D23 + AoC.Y2023.D24 + AoC.Y2023.D25 AoC.Year other-modules: Paths_aoc diff --git a/data/Y2023/D01/riddle b/data/Y2023/D01/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2023/D02/riddle b/data/Y2023/D02/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2023/D03/riddle b/data/Y2023/D03/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2023/D04/riddle b/data/Y2023/D04/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2023/D05/riddle b/data/Y2023/D05/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2023/D06/riddle b/data/Y2023/D06/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2023/D07/riddle b/data/Y2023/D07/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2023/D08/riddle b/data/Y2023/D08/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2023/D09/riddle b/data/Y2023/D09/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2023/D10/riddle b/data/Y2023/D10/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2023/D11/riddle b/data/Y2023/D11/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2023/D12/riddle b/data/Y2023/D12/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2023/D13/riddle b/data/Y2023/D13/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2023/D14/riddle b/data/Y2023/D14/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2023/D15/riddle b/data/Y2023/D15/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2023/D16/riddle b/data/Y2023/D16/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2023/D17/riddle b/data/Y2023/D17/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2023/D18/riddle b/data/Y2023/D18/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2023/D19/riddle b/data/Y2023/D19/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2023/D20/riddle b/data/Y2023/D20/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2023/D21/riddle b/data/Y2023/D21/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2023/D22/riddle b/data/Y2023/D22/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2023/D23/riddle b/data/Y2023/D23/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2023/D24/riddle b/data/Y2023/D24/riddle new file mode 100644 index 0000000..e69de29 diff --git a/data/Y2023/D25/riddle b/data/Y2023/D25/riddle new file mode 100644 index 0000000..e69de29 diff --git a/src/AoC.hs b/src/AoC.hs index 22a06e9..08752d6 100644 --- a/src/AoC.hs +++ b/src/AoC.hs @@ -12,11 +12,13 @@ import Control.Exception qualified as Exception import System.IO (hPutStrLn) import System.IO.Error qualified as IOError --- import AoC.Y0000 qualified as Y0000 +import AoC.Y2023 qualified as Y2023 -runAoC :: [String] -> IO () -runAoC _args = - putStrLn "Hello" +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 diff --git a/src/AoC/Y2023.hs b/src/AoC/Y2023.hs new file mode 100644 index 0000000..389adc6 --- /dev/null +++ b/src/AoC/Y2023.hs @@ -0,0 +1,57 @@ +module AoC.Y2023 (solve) where + +import AoC.Day +import AoC.Riddle + +import AoC.Y2023.D01 qualified as D01 +import AoC.Y2023.D02 qualified as D02 +import AoC.Y2023.D03 qualified as D03 +import AoC.Y2023.D04 qualified as D04 +import AoC.Y2023.D05 qualified as D05 +import AoC.Y2023.D06 qualified as D06 +import AoC.Y2023.D07 qualified as D07 +import AoC.Y2023.D08 qualified as D08 +import AoC.Y2023.D09 qualified as D09 +import AoC.Y2023.D10 qualified as D10 +import AoC.Y2023.D11 qualified as D11 +import AoC.Y2023.D12 qualified as D12 +import AoC.Y2023.D13 qualified as D13 +import AoC.Y2023.D14 qualified as D14 +import AoC.Y2023.D15 qualified as D15 +import AoC.Y2023.D16 qualified as D16 +import AoC.Y2023.D17 qualified as D17 +import AoC.Y2023.D18 qualified as D18 +import AoC.Y2023.D19 qualified as D19 +import AoC.Y2023.D20 qualified as D20 +import AoC.Y2023.D21 qualified as D21 +import AoC.Y2023.D22 qualified as D22 +import AoC.Y2023.D23 qualified as D23 +import AoC.Y2023.D24 qualified as D24 +import AoC.Y2023.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/Y2023/D01.hs b/src/AoC/Y2023/D01.hs new file mode 100644 index 0000000..6d44235 --- /dev/null +++ b/src/AoC/Y2023/D01.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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/Y2023/D02.hs b/src/AoC/Y2023/D02.hs new file mode 100644 index 0000000..ee63e88 --- /dev/null +++ b/src/AoC/Y2023/D02.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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/Y2023/D03.hs b/src/AoC/Y2023/D03.hs new file mode 100644 index 0000000..c509d93 --- /dev/null +++ b/src/AoC/Y2023/D03.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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/Y2023/D04.hs b/src/AoC/Y2023/D04.hs new file mode 100644 index 0000000..d433091 --- /dev/null +++ b/src/AoC/Y2023/D04.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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/Y2023/D05.hs b/src/AoC/Y2023/D05.hs new file mode 100644 index 0000000..2abeb79 --- /dev/null +++ b/src/AoC/Y2023/D05.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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/Y2023/D06.hs b/src/AoC/Y2023/D06.hs new file mode 100644 index 0000000..4b9fd40 --- /dev/null +++ b/src/AoC/Y2023/D06.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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/Y2023/D07.hs b/src/AoC/Y2023/D07.hs new file mode 100644 index 0000000..68a369e --- /dev/null +++ b/src/AoC/Y2023/D07.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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/Y2023/D08.hs b/src/AoC/Y2023/D08.hs new file mode 100644 index 0000000..024d550 --- /dev/null +++ b/src/AoC/Y2023/D08.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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/Y2023/D09.hs b/src/AoC/Y2023/D09.hs new file mode 100644 index 0000000..c0111cf --- /dev/null +++ b/src/AoC/Y2023/D09.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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/Y2023/D10.hs b/src/AoC/Y2023/D10.hs new file mode 100644 index 0000000..dedcb34 --- /dev/null +++ b/src/AoC/Y2023/D10.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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/Y2023/D11.hs b/src/AoC/Y2023/D11.hs new file mode 100644 index 0000000..979fee6 --- /dev/null +++ b/src/AoC/Y2023/D11.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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/Y2023/D12.hs b/src/AoC/Y2023/D12.hs new file mode 100644 index 0000000..035fca3 --- /dev/null +++ b/src/AoC/Y2023/D12.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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/Y2023/D13.hs b/src/AoC/Y2023/D13.hs new file mode 100644 index 0000000..a8678c6 --- /dev/null +++ b/src/AoC/Y2023/D13.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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/Y2023/D14.hs b/src/AoC/Y2023/D14.hs new file mode 100644 index 0000000..7c591d3 --- /dev/null +++ b/src/AoC/Y2023/D14.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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/Y2023/D15.hs b/src/AoC/Y2023/D15.hs new file mode 100644 index 0000000..43b5888 --- /dev/null +++ b/src/AoC/Y2023/D15.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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/Y2023/D16.hs b/src/AoC/Y2023/D16.hs new file mode 100644 index 0000000..edcb507 --- /dev/null +++ b/src/AoC/Y2023/D16.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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/Y2023/D17.hs b/src/AoC/Y2023/D17.hs new file mode 100644 index 0000000..ae873c6 --- /dev/null +++ b/src/AoC/Y2023/D17.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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/Y2023/D18.hs b/src/AoC/Y2023/D18.hs new file mode 100644 index 0000000..f8d5908 --- /dev/null +++ b/src/AoC/Y2023/D18.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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/Y2023/D19.hs b/src/AoC/Y2023/D19.hs new file mode 100644 index 0000000..54e3187 --- /dev/null +++ b/src/AoC/Y2023/D19.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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/Y2023/D20.hs b/src/AoC/Y2023/D20.hs new file mode 100644 index 0000000..7fee6f1 --- /dev/null +++ b/src/AoC/Y2023/D20.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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/Y2023/D21.hs b/src/AoC/Y2023/D21.hs new file mode 100644 index 0000000..cc073fb --- /dev/null +++ b/src/AoC/Y2023/D21.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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/Y2023/D22.hs b/src/AoC/Y2023/D22.hs new file mode 100644 index 0000000..2d59dae --- /dev/null +++ b/src/AoC/Y2023/D22.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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/Y2023/D23.hs b/src/AoC/Y2023/D23.hs new file mode 100644 index 0000000..953685b --- /dev/null +++ b/src/AoC/Y2023/D23.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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/Y2023/D24.hs b/src/AoC/Y2023/D24.hs new file mode 100644 index 0000000..27cab03 --- /dev/null +++ b/src/AoC/Y2023/D24.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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/Y2023/D25.hs b/src/AoC/Y2023/D25.hs new file mode 100644 index 0000000..cb0b109 --- /dev/null +++ b/src/AoC/Y2023/D25.hs @@ -0,0 +1,6 @@ +module AoC.Y2023.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 6af18d6..0576478 100644 --- a/src/AoC/Year.hs +++ b/src/AoC/Year.hs @@ -2,4 +2,5 @@ module AoC.Year (Year (..)) where data Year = Y0000 + | Y2023 deriving stock (Read, Show, Eq, Ord, Enum)