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]