run2015 :: Int -> Int -> IO ()
run2015 day pbNumber = case day * 10 + pbNumber of
    11  -> D01.answer1
    12  -> D01.answer2
    21  -> D02.answer1
    22  -> D02.answer2
    31  -> D03.answer1
    32  -> D03.answer2
    41  -> D04.answer1
    42  -> D04.answer2
    51  -> D05.answer1
    52  -> D05.answer2
    61  -> D06.answer1
    62  -> D06.answer2
    71  -> D07.answer1
    72  -> D07.answer2
    81  -> D08.answer1
    82  -> D08.answer2
    91  -> D09.answer1
    92  -> D09.answer2
    101 -> D10.answer1
    102 -> D10.answer2
    111 -> D11.answer1
    112 -> D11.answer2
    121 -> D12.answer1
    122 -> D12.answer2
    131 -> D13.answer1
    132 -> D13.answer2
    141 -> D14.answer1
    142 -> D14.answer2
    151 -> D15.answer1
    152 -> D15.answer2
    161 -> D16.answer1
    162 -> D16.answer2
    171 -> D17.answer1
    172 -> D17.answer2
    181 -> D18.answer1
    182 -> D18.answer2
    191 -> D19.answer1
    192 -> D19.answer2
    201 -> D20.answer1
    202 -> D20.answer2
    211 -> D21.answer1
    212 -> D21.answer2
    221 -> D22.answer1
    222 -> D22.answer2
    231 -> D23.answer1
    232 -> D23.answer2
    241 -> D24.answer1
    242 -> D24.answer2
    251 -> D25.answer1
    _   -> putStrLn "Invalid puzzle number"
run2015 :: Int -> Int -> IO ()
run2015 day pbNumber = case day * 10 + pbNumber of
    11  -> D01.answer1
    12  -> D01.answer2
    21  -> D02.answer1
    22  -> D02.answer2
    31  -> D03.answer1
    32  -> D03.answer2
    41  -> D04.answer1
    42  -> D04.answer2
    51  -> D05.answer1
    52  -> D05.answer2
    61  -> D06.answer1
    62  -> D06.answer2
    71  -> D07.answer1
    72  -> D07.answer2
    81  -> D08.answer1
    82  -> D08.answer2
    91  -> D09.answer1
    92  -> D09.answer2
    101 -> D10.answer1
    102 -> D10.answer2
    111 -> D11.answer1
    112 -> D11.answer2
    121 -> D12.answer1
    122 -> D12.answer2
    131 -> D13.answer1
    132 -> D13.answer2
    141 -> D14.answer1
    142 -> D14.answer2
    151 -> D15.answer1
    152 -> D15.answer2
    161 -> D16.answer1
    162 -> D16.answer2
    171 -> D17.answer1
    172 -> D17.answer2
    181 -> D18.answer1
    182 -> D18.answer2
    191 -> D19.answer1
    192 -> D19.answer2
    201 -> D20.answer1
    202 -> D20.answer2
    211 -> D21.answer1
    212 -> D21.answer2
    221 -> D22.answer1
    222 -> D22.answer2
    231 -> D23.answer1
    232 -> D23.answer2
    241 -> D24.answer1
    242 -> D24.answer2
    251 -> D25.answer1
    _   -> putStrLn "Invalid puzzle number"
run2015 day pbNumber = case day * 10 + pbNumber of
    11  -> D01.answer1
    12  -> D01.answer2
    21  -> D02.answer1
    22  -> D02.answer2
    31  -> D03.answer1
    32  -> D03.answer2
    41  -> D04.answer1
    42  -> D04.answer2
    51  -> D05.answer1
    52  -> D05.answer2
    61  -> D06.answer1
    62  -> D06.answer2
    71  -> D07.answer1
    72  -> D07.answer2
    81  -> D08.answer1
    82  -> D08.answer2
    91  -> D09.answer1
    92  -> D09.answer2
    101 -> D10.answer1
    102 -> D10.answer2
    111 -> D11.answer1
    112 -> D11.answer2
    121 -> D12.answer1
    122 -> D12.answer2
    131 -> D13.answer1
    132 -> D13.answer2
    141 -> D14.answer1
    142 -> D14.answer2
    151 -> D15.answer1
    152 -> D15.answer2
    161 -> D16.answer1
    162 -> D16.answer2
    171 -> D17.answer1
    172 -> D17.answer2
    181 -> D18.answer1
    182 -> D18.answer2
    191 -> D19.answer1
    192 -> D19.answer2
    201 -> D20.answer1
    202 -> D20.answer2
    211 -> D21.answer1
    212 -> D21.answer2
    221 -> D22.answer1
    222 -> D22.answer2
    231 -> D23.answer1
    232 -> D23.answer2
    241 -> D24.answer1
    242 -> D24.answer2
    251 -> D25.answer1
    _   -> putStrLn "Invalid puzzle number"