aoc/src/AoC/Riddle.hs
2023-12-05 22:37:50 +01:00

29 lines
595 B
Haskell

module AoC.Riddle (
Riddle,
Error,
Solution,
loadRiddle,
loadExample,
module AoC.Day,
module AoC.Year,
) where
import AoC.Util (readFileUtf8)
import AoC.Day
import AoC.Year
type Riddle = Text
type Error = Text
type Solution = [Integer]
loadRiddle :: (MonadIO m) => Year -> Day -> m Riddle
loadRiddle = loadFile "riddle"
loadExample :: (MonadIO m) => Year -> Day -> m Riddle
loadExample = loadFile "example"
loadFile :: (MonadIO m) => FilePath -> Year -> Day -> m Riddle
loadFile f y d = readFileUtf8 inputFile
where
inputFile = intercalate "/" ["data", show y, show d, f]