From e741c4f56e9e091e2f0bda165ed03cbf952f78ca Mon Sep 17 00:00:00 2001 From: radumaco Date: Fri, 6 Mar 2026 17:45:16 +0100 Subject: [PATCH] day 1 --- day1/CHANGELOG.md | 5 + day1/LICENSE | 20 + day1/app/Main.hs | 31 + day1/app/input1.txt | 4498 ++++++++++++++++++++++++++++++++++++++ day1/app/test-input1.txt | 10 + day1/day1.cabal | 76 + 6 files changed, 4640 insertions(+) create mode 100644 day1/CHANGELOG.md create mode 100644 day1/LICENSE create mode 100644 day1/app/Main.hs create mode 100644 day1/app/input1.txt create mode 100644 day1/app/test-input1.txt create mode 100644 day1/day1.cabal diff --git a/day1/CHANGELOG.md b/day1/CHANGELOG.md new file mode 100644 index 0000000..1e2a645 --- /dev/null +++ b/day1/CHANGELOG.md @@ -0,0 +1,5 @@ +# Revision history for day1 + +## 0.1.0.0 -- YYYY-mm-dd + +* First version. Released on an unsuspecting world. diff --git a/day1/LICENSE b/day1/LICENSE new file mode 100644 index 0000000..87cbd05 --- /dev/null +++ b/day1/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2026 radumaco + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/day1/app/Main.hs b/day1/app/Main.hs new file mode 100644 index 0000000..cddde68 --- /dev/null +++ b/day1/app/Main.hs @@ -0,0 +1,31 @@ +module Main (main) where + +import System.Environment + +main :: IO () +main = do + path <- getArgs + file <- readFile $ path !! 0 + let instructions = map parseInput $ lines file + let result = foldl rotate (0, 50) instructions + print result + +parseInput :: String -> (Rotation, Int) +parseInput (dir:num) = (getRotation dir, read num) +parseInput _ = error "Invalid Input" + +data Rotation = LEFT | RIGHT deriving (Show) + +getRotation :: Char -> Rotation +getRotation 'L' = LEFT +getRotation 'R' = RIGHT +getRotation _ = error "Invalid Rotation" + + +rotate :: (Int, Int) -> (Rotation, Int) -> (Int, Int) +rotate (acc, pos) (RIGHT, num) = ((pos + num) `div` 100 + acc, (pos + num) `mod` 100) +rotate (acc, pos) (LEFT, num) = let totalPos = pos - num + offset = if pos == 0 then -1 else 0 in + case totalPos `mod` 100 of + 0 -> (abs (totalPos `div` 100) + acc + 1 + offset, 0) + newPos -> (abs (totalPos `div` 100) + acc + offset, newPos) diff --git a/day1/app/input1.txt b/day1/app/input1.txt new file mode 100644 index 0000000..6d351a8 --- /dev/null +++ b/day1/app/input1.txt @@ -0,0 +1,4498 @@ +L6 +L41 +R25 +L38 +L27 +L21 +R5 +L31 +R10 +L21 +L49 +R44 +L16 +R4 +R39 +L43 +R50 +R27 +R42 +L6 +R1 +L10 +L48 +R12 +L26 +L14 +L19 +L38 +L11 +R30 +R8 +R19 +L19 +L20 +R31 +R7 +L30 +R44 +R43 +R29 +R45 +L14 +R6 +L41 +L24 +R13 +L30 +R36 +L45 +L23 +L9 +R65 +R35 +L29 +L60 +L59 +R20 +L72 +L67 +L81 +L39 +L41 +L72 +R80 +R87 +R55 +R78 +R48 +L28 +L14 +L6 +L16 +L84 +L81 +R12 +R69 +L87 +R87 +R74 +L74 +R34 +R43 +R47 +L83 +R59 +R11 +L24 +L14 +L73 +L50 +L50 +L20 +L80 +R83 +L4 +L90 +L89 +L85 +R16 +L31 +R8 +L14 +R12 +L19 +R13 +L184 +L716 +L705 +L95 +R49 +R398 +R553 +L54 +R10 +L94 +R29 +L91 +L87 +L13 +L10 +L94 +R81 +R307 +L178 +R94 +R65 +R177 +R958 +L47 +R48 +L85 +L75 +R10 +L76 +R576 +R84 +L36 +L99 +L66 +L34 +L78 +L22 +L683 +R56 +R2 +R12 +L712 +R25 +L487 +L13 +L88 +R82 +L657 +L24 +R2 +R57 +R28 +R9 +R91 +R83 +L83 +R18 +L62 +L556 +R858 +R42 +L90 +R90 +R49 +L35 +L75 +R61 +L83 +L17 +R23 +L826 +L106 +L36 +L34 +L55 +L75 +L97 +R18 +R88 +L76 +L623 +L902 +L17 +R18 +L5 +L95 +R962 +R38 +R85 +L11 +L660 +L120 +L94 +L80 +L616 +R75 +L79 +R13 +R87 +R41 +L81 +R840 +L94 +L34 +R653 +R899 +L124 +L13 +L55 +R68 +R65 +R54 +R781 +L54 +L58 +R10 +R525 +L23 +L46 +R61 +L57 +R38 +R4 +L35 +R84 +R94 +L63 +L380 +L27 +L73 +R51 +R461 +R19 +L5 +L209 +R83 +L256 +L846 +R44 +L42 +L76 +L224 +R80 +L9 +L86 +R68 +L25 +L928 +R8 +R105 +L37 +L676 +L77 +L823 +R39 +R77 +L16 +L32 +R84 +L52 +R375 +L503 +L76 +R979 +L75 +R91 +R78 +R81 +L50 +R29 +R571 +L14 +R14 +L483 +L17 +L12 +R12 +L617 +L7 +R24 +L46 +L54 +L79 +R37 +R84 +L42 +L24 +R76 +L52 +L95 +L98 +R89 +L96 +L85 +L19 +L23 +R502 +R20 +R5 +R72 +R21 +R7 +L37 +L39 +L78 +R940 +R38 +R50 +L74 +R649 +L85 +L96 +R455 +L74 +L49 +R65 +L65 +L33 +R33 +R66 +L66 +R99 +R1 +L689 +L7 +L158 +L80 +R550 +R599 +R62 +R611 +R93 +R35 +L16 +R931 +L27 +L4 +R689 +R11 +R341 +R47 +R542 +L57 +R27 +R77 +L84 +R43 +R631 +R26 +R170 +R37 +L97 +R97 +L8 +L92 +L706 +R6 +L37 +R30 +R7 +L49 +L840 +R9 +L20 +L65 +R12 +R84 +R69 +L174 +R74 +R58 +L44 +L14 +L305 +L72 +L923 +L22 +L58 +R35 +R422 +R23 +R30 +R35 +L65 +L55 +R96 +L55 +L86 +L28 +R9 +L976 +R53 +L58 +R992 +R71 +R37 +L29 +L71 +L58 +L855 +R81 +R32 +L44 +R44 +L365 +R14 +L49 +R23 +R4 +R90 +R11 +R72 +R90 +L809 +L181 +R52 +R11 +R830 +R14 +L50 +L57 +L39 +R87 +R52 +L97 +R97 +L70 +L30 +L18 +L82 +L42 +L8 +L83 +R933 +R764 +L64 +R76 +R24 +R838 +L201 +R52 +L99 +R479 +L44 +L45 +R8 +L596 +L80 +L80 +R92 +R54 +R12 +L65 +R82 +R82 +R39 +R66 +L81 +R387 +L43 +R43 +L90 +L618 +R8 +L346 +R10 +R36 +R28 +R58 +L67 +R81 +L5 +L67 +R43 +L271 +R35 +L6 +L70 +L11 +R52 +R111 +L41 +L639 +R97 +L55 +R11 +R56 +L61 +R21 +R32 +L32 +R39 +L739 +R680 +L358 +L11 +R36 +R95 +L704 +L38 +R45 +R52 +R3 +L70 +R99 +L83 +R54 +R41 +R55 +L76 +L20 +R79 +R56 +R48 +R97 +R490 +R30 +L9 +L598 +R953 +R68 +R692 +L306 +R24 +L8 +R605 +R58 +L60 +L25 +L88 +R94 +R45 +R7 +L513 +R61 +L693 +R12 +R29 +L48 +L842 +L58 +R57 +L57 +R6 +R94 +R4 +L674 +L505 +R69 +R806 +R80 +R950 +R3 +R67 +R94 +L94 +R1 +L55 +R28 +R56 +R145 +R25 +L859 +L19 +R78 +L72 +L28 +L99 +L1 +L82 +L18 +R39 +L39 +L28 +R28 +R70 +R30 +L71 +R71 +R44 +R56 +L92 +R22 +R35 +L73 +L769 +L23 +R221 +L50 +R36 +R93 +L925 +L5 +L4 +R34 +R33 +R677 +R90 +R40 +L81 +R55 +L72 +L29 +L86 +L7 +R952 +R392 +R36 +R65 +R35 +R454 +L61 +R9 +L70 +L4 +L76 +L52 +L451 +L13 +R64 +R66 +R34 +R18 +R69 +L87 +L78 +L84 +L856 +R750 +R68 +L77 +R30 +L754 +R20 +R994 +R20 +R67 +L537 +R62 +R97 +R14 +L48 +L98 +L858 +R72 +L104 +R89 +R80 +R231 +R49 +R79 +R783 +R89 +L20 +R96 +R97 +L73 +L510 +L20 +R995 +R344 +R84 +L63 +L57 +R29 +L2 +R65 +R72 +R1 +R83 +R79 +R83 +R217 +L21 +L79 +R48 +L598 +L550 +L33 +R333 +L63 +R380 +R43 +L28 +R49 +R19 +R67 +L29 +L88 +R50 +R365 +R61 +L60 +L59 +R69 +R59 +L380 +R33 +L80 +L780 +L1 +R73 +R4 +R96 +R80 +L80 +L55 +R9 +L138 +R92 +L23 +R2 +L87 +R139 +R79 +R44 +L21 +L69 +L36 +L36 +L38 +R17 +R21 +R55 +L12 +L54 +L989 +L34 +R931 +L838 +L259 +L10 +R12 +L602 +R67 +L32 +L35 +L33 +L67 +L452 +L248 +L207 +R66 +L21 +R86 +R88 +R88 +L75 +L25 +R23 +L23 +R962 +R38 +R32 +R84 +L16 +R68 +R16 +R87 +R236 +R36 +R157 +R17 +L433 +R8 +R41 +L19 +R856 +R91 +L5 +R45 +L45 +R44 +L47 +L90 +L63 +R68 +L121 +R76 +R77 +L97 +L295 +R792 +R7 +R1 +L8 +L357 +R5 +L348 +R49 +L49 +L95 +R22 +R53 +R93 +L73 +R490 +R476 +R34 +R12 +R67 +R362 +L93 +L60 +L488 +L86 +L94 +L99 +R65 +R70 +R444 +R66 +R34 +L43 +L57 +L39 +L76 +R84 +R61 +L30 +R70 +L70 +L59 +L41 +R36 +R64 +R50 +L1 +R94 +L43 +R490 +R610 +R73 +L28 +R52 +L97 +R27 +R73 +R99 +R1 +L2 +R2 +L39 +L261 +L19 +R419 +R63 +L363 +L420 +R87 +R16 +R34 +R83 +R79 +L79 +L121 +R21 +R937 +L33 +L36 +L68 +R17 +R64 +R680 +L261 +L162 +R57 +R80 +L25 +L80 +L70 +L83 +L83 +R66 +L84 +L16 +R89 +R11 +R58 +R60 +L20 +L98 +L747 +R51 +R84 +L253 +R93 +L87 +R66 +R93 +L75 +R204 +R71 +L74 +L26 +L28 +R728 +R24 +L424 +L61 +R34 +L58 +R37 +R48 +R46 +R32 +R37 +L92 +R49 +R52 +R78 +L502 +L77 +R9 +R26 +L85 +L73 +L53 +R691 +R262 +L85 +R1 +R52 +R53 +L80 +L25 +R84 +R65 +R35 +L45 +L55 +L34 +R25 +R34 +R94 +R281 +R46 +R9 +L403 +L14 +L38 +L89 +R3 +R2 +L51 +R35 +L487 +R4 +R39 +L37 +L19 +R363 +R37 +L65 +L35 +L84 +L56 +L60 +R939 +L91 +R62 +L70 +L423 +R94 +L48 +R75 +L89 +R96 +L78 +L67 +L13 +L77 +R90 +L57 +L43 +R85 +R478 +R37 +R92 +R32 +L624 +L340 +L1 +R52 +R879 +R10 +R16 +R384 +R62 +L862 +R59 +L761 +L18 +L11 +R37 +R94 +R25 +L17 +R537 +R55 +L78 +R59 +L81 +L5 +R25 +L20 +L555 +L59 +L86 +R6 +R194 +R367 +L67 +L6 +L94 +R63 +L63 +R30 +L30 +R88 +R12 +L971 +R392 +R31 +R21 +L73 +R19 +L81 +L276 +L62 +L77 +L123 +L81 +L19 +R36 +R519 +L69 +R414 +R21 +R48 +R198 +L29 +R73 +R89 +R22 +L22 +L38 +R9 +R354 +R61 +L986 +L71 +R71 +L16 +R658 +R358 +L43 +R84 +L41 +R34 +R46 +R31 +R78 +R11 +R24 +L95 +L929 +R53 +R34 +R19 +R94 +L51 +L53 +L896 +L95 +R82 +L87 +L52 +L66 +L30 +R63 +L60 +L55 +L97 +R97 +R46 +R54 +L67 +R53 +L27 +R48 +L11 +R4 +L41 +R56 +L77 +R71 +R291 +R31 +L31 +R54 +R29 +L9 +L52 +L4 +L90 +R91 +L619 +L45 +L54 +L901 +R30 +L54 +L92 +L143 +L41 +R114 +L14 +R7 +R93 +R70 +R95 +L20 +R99 +L2 +L42 +R15 +R63 +L2 +R24 +R645 +L90 +R45 +L53 +L47 +L245 +L5 +R88 +L79 +L16 +L43 +R278 +R81 +R36 +L95 +R745 +R151 +R4 +R213 +R4 +R83 +L67 +L7 +L67 +L14 +R20 +L32 +R497 +R70 +L54 +R67 +R87 +L18 +R20 +L89 +L45 +R79 +R11 +L41 +L17 +R30 +L375 +R52 +R29 +L20 +L11 +L805 +R31 +R7 +L38 +R98 +R2 +L956 +R73 +R55 +R15 +R13 +L486 +L14 +L96 +L4 +R264 +R31 +L44 +R21 +R510 +L385 +L25 +L48 +L24 +L98 +R98 +R33 +L33 +L86 +R139 +R47 +L14 +L484 +L2 +L56 +L21 +R677 +L46 +R14 +L2 +L84 +L90 +L92 +R76 +L87 +L236 +R69 +R46 +R32 +L72 +R61 +R34 +L2 +R79 +R602 +R51 +R47 +L11 +R30 +R481 +L21 +R31 +L39 +L71 +R57 +L705 +R348 +R24 +L74 +L65 +R15 +R46 +R78 +R76 +L218 +L77 +R99 +R45 +R806 +L12 +L72 +R29 +L47 +L48 +R85 +R73 +L44 +R58 +R47 +R76 +L85 +L60 +R40 +R77 +R28 +R4 +R37 +L49 +L5 +R867 +L72 +L95 +R923 +L26 +R716 +R9 +R68 +L11 +R526 +R23 +L15 +R75 +R925 +L853 +R53 +R55 +L24 +R69 +R25 +L15 +L24 +L79 +L833 +L2 +R28 +L59 +L3 +R94 +L1 +R69 +L98 +R3 +L5 +L63 +L36 +L201 +L5 +L1 +L594 +R31 +R736 +R509 +L76 +L44 +L77 +L12 +L8 +L59 +R155 +R54 +R1 +R55 +R309 +L69 +L1 +R85 +R94 +R117 +R513 +L10 +L3 +L43 +L47 +L10 +R94 +L442 +L88 +R15 +R69 +L48 +L22 +R558 +R97 +R783 +R84 +R55 +R34 +L989 +L64 +L67 +R31 +R71 +L71 +R11 +L826 +R59 +L6 +L29 +R26 +L335 +R692 +L92 +L177 +R9 +L832 +L88 +R5 +R83 +R39 +R5 +R46 +R4 +R6 +L478 +L3 +R71 +R10 +L98 +L2 +L272 +R92 +L415 +R895 +L41 +R41 +L82 +R37 +R136 +L91 +R56 +R6 +L94 +R924 +R8 +L3 +R3 +R27 +L527 +R93 +L93 +R29 +R71 +R27 +R25 +L89 +L63 +L55 +R55 +R20 +R680 +L43 +L28 +L829 +R68 +R26 +R2 +L40 +L56 +R65 +R35 +L41 +L59 +R50 +R839 +R73 +L62 +R94 +R6 +L67 +L38 +L8 +L78 +L9 +L53 +R53 +R69 +L54 +R93 +L42 +L75 +L44 +R753 +R40 +L40 +L79 +R79 +L10 +R10 +R20 +L20 +R26 +L26 +L989 +R40 +R72 +R4 +L38 +R417 +R96 +R53 +R53 +R63 +R29 +R79 +R46 +L25 +R86 +L49 +R88 +R75 +L85 +L99 +L216 +R96 +R83 +R7 +R29 +L15 +R62 +R47 +L809 +L54 +L55 +L43 +R52 +R42 +R889 +R2 +R67 +L53 +L128 +L1 +R82 +R50 +L94 +R44 +R72 +L72 +L6 +L227 +R46 +R87 +L83 +L85 +L26 +L85 +R719 +L88 +L72 +L23 +R27 +R39 +L72 +R19 +L11 +R32 +L91 +L89 +L74 +L3 +L46 +L74 +L76 +R62 +R65 +R37 +R63 +R46 +R34 +L43 +L2 +L69 +R23 +L59 +R426 +R679 +L46 +L679 +L27 +L163 +L85 +L19 +R19 +L68 +R523 +L37 +R86 +R57 +R18 +R621 +R22 +R78 +R79 +L89 +L187 +R84 +R11 +R2 +R59 +L63 +R67 +L63 +L99 +L1 +R99 +L81 +L18 +L78 +R948 +L243 +R68 +L531 +R436 +L54 +L80 +R70 +R17 +L49 +L5 +R22 +L98 +R77 +R19 +R28 +R69 +L36 +R18 +R61 +L59 +R77 +L977 +R24 +R76 +L73 +R33 +L73 +L22 +R53 +R182 +R4 +R23 +L63 +R36 +L65 +R65 +L41 +L225 +R536 +L61 +R91 +R10 +R81 +R45 +L79 +L203 +L395 +R127 +R39 +L25 +L64 +L36 +R50 +R47 +R3 +L32 +R43 +L35 +L476 +R58 +L3 +L72 +L631 +R16 +L68 +L33 +R60 +L70 +L322 +L35 +L94 +L106 +L90 +L21 +L89 +R61 +L11 +R433 +R345 +R972 +L34 +L66 +R82 +R740 +L22 +R95 +L97 +R10 +L62 +R32 +R90 +R57 +R59 +L84 +R57 +R11 +R43 +L811 +L562 +R290 +R990 +L18 +L120 +L84 +L96 +R40 +L40 +L35 +R15 +R17 +L97 +R53 +R47 +L2 +R12 +L98 +L17 +R3 +L98 +R77 +L77 +R67 +R8 +R20 +L34 +R32 +L559 +L434 +L64 +L636 +L450 +R21 +R29 +R89 +L989 +L23 +L104 +L673 +L72 +L37 +L4 +R813 +R60 +R38 +R2 +R885 +R41 +L26 +L547 +L53 +L58 +L42 +L90 +R788 +R27 +L89 +L27 +L9 +L57 +L43 +R92 +L539 +L29 +L24 +L97 +L3 +R35 +R46 +R519 +L39 +R2 +L263 +L57 +R57 +L17 +L83 +L63 +R63 +L62 +R73 +L89 +R32 +L6 +L9 +R61 +R90 +R734 +L55 +R31 +R61 +L61 +L110 +L90 +R89 +R76 +L65 +L74 +L726 +L3 +L8 +R83 +L72 +L1 +L14 +R91 +L776 +L241 +R95 +L54 +L12 +R463 +L70 +L333 +L29 +L85 +L34 +R3 +R1 +L20 +R16 +R330 +R70 +R671 +R993 +L99 +L785 +R598 +L9 +L938 +L787 +L44 +R154 +L53 +L1 +R591 +R92 +R17 +R443 +R57 +R452 +L12 +L40 +R62 +R15 +L77 +L33 +R33 +L30 +R85 +R45 +R959 +L59 +L42 +R22 +L770 +R876 +R14 +R16 +L16 +L33 +R33 +L887 +R94 +R25 +R234 +R295 +R43 +L690 +R86 +L14 +L86 +L88 +L78 +L11 +L12 +R420 +R81 +L563 +R92 +R33 +R10 +L4 +R788 +R19 +R593 +L80 +L21 +L79 +L1 +L97 +R98 +R224 +L1 +L223 +R7 +L46 +L77 +L63 +L22 +R35 +L84 +R750 +L51 +L15 +R95 +R71 +R17 +L79 +R16 +L821 +R24 +R43 +R45 +L95 +R69 +L37 +L65 +L17 +L39 +L61 +R95 +R38 +L73 +R981 +L153 +R12 +L56 +L58 +R958 +L372 +R91 +L638 +L51 +R189 +R37 +L31 +R31 +L27 +R27 +L51 +L214 +R988 +L77 +L54 +R8 +L20 +L11 +R75 +R99 +L78 +R35 +L56 +R6 +R7 +R52 +L9 +L6 +R67 +L40 +L95 +L99 +R86 +R35 +L26 +L522 +L82 +R563 +L53 +L34 +R61 +R845 +L54 +L40 +L6 +L27 +L973 +R731 +L69 +R53 +R985 +R74 +R99 +L73 +L18 +R18 +R988 +R253 +R545 +R14 +L645 +R36 +L740 +R749 +R99 +R19 +R682 +L475 +R775 +R366 +R13 +L11 +L18 +R19 +L82 +R96 +R55 +L36 +R98 +R35 +L35 +R11 +L87 +L26 +L28 +R7 +L84 +R207 +L97 +L52 +R77 +R872 +L60 +L622 +L760 +R42 +R51 +L580 +R704 +L75 +L403 +L941 +L99 +L92 +L69 +L96 +L47 +L753 +L52 +R52 +R34 +R66 +R53 +R9 +L6 +R44 +L42 +L50 +L11 +L328 +L222 +L47 +L33 +R833 +R84 +R458 +L32 +R72 +R67 +L49 +R4 +R96 +R92 +R301 +L84 +R60 +R31 +R23 +R56 +L79 +L7 +L778 +R85 +L692 +R79 +L96 +R9 +R53 +R47 +R964 +L337 +L27 +L98 +R98 +R60 +L32 +L87 +L5 +R92 +L11 +L33 +L84 +L34 +R34 +R65 +R59 +R76 +R38 +R62 +R60 +L60 +L865 +R65 +R576 +R39 +L867 +R34 +L182 +R91 +L81 +L10 +L747 +L27 +L26 +L15 +R29 +R786 +R76 +L76 +L35 +R535 +R650 +L5 +L449 +L72 +R76 +R73 +L36 +R933 +L84 +R872 +L1 +L28 +R754 +R311 +L40 +R49 +L949 +L95 +R41 +R54 +R28 +R18 +L908 +L57 +L35 +R941 +L41 +R10 +R8 +L218 +R61 +L76 +R33 +R918 +R57 +L593 +L7 +L55 +R21 +R41 +R28 +L69 +R95 +R146 +L41 +L39 +L20 +L62 +R134 +L33 +R61 +L68 +L63 +L318 +R83 +L894 +L40 +R65 +R35 +L895 +L46 +L40 +L28 +L91 +R99 +R911 +L910 +L525 +L32 +R23 +L39 +L49 +L48 +L86 +L68 +L38 +R89 +L94 +R53 +L86 +L7 +L93 +L53 +R45 +L92 +L95 +L36 +R855 +R231 +R84 +L95 +L14 +R992 +L12 +L96 +L79 +R251 +R469 +R43 +R43 +L519 +L22 +R173 +R715 +L55 +L425 +L8 +R95 +R10 +L5 +R23 +R99 +L22 +R546 +R470 +R84 +L23 +R23 +L90 +L3 +R198 +R95 +R48 +R32 +L80 +L88 +L12 +L87 +R37 +R50 +R29 +L289 +R803 +L50 +R958 +L51 +R931 +L65 +R89 +R45 +R29 +R17 +L46 +R27 +R84 +R96 +R93 +R20 +L13 +L70 +L37 +R62 +L62 +L65 +R8 +R5 +R792 +R218 +R1 +R41 +L48 +L37 +L96 +L19 +R92 +R83 +R25 +R57 +L66 +L1 +R67 +R31 +R12 +R26 +R25 +R10 +R19 +L80 +L67 +R143 +R31 +L35 +L672 +R29 +L53 +L85 +L61 +R51 +L53 +R72 +L21 +R21 +L5 +R443 +R97 +R89 +L35 +L89 +L57 +L43 +L80 +L83 +L99 +L38 +L34 +L66 +L61 +R31 +R530 +R92 +L11 +R19 +R94 +L94 +R807 +R93 +L29 +L71 +R27 +R26 +L68 +R378 +R12 +L224 +L974 +R23 +L855 +L59 +R42 +L28 +R7 +R35 +L42 +R47 +R52 +R1 +R58 +L62 +L96 +L90 +R90 +L41 +L59 +R80 +R66 +R62 +R82 +L90 +R63 +R37 +R73 +L373 +R34 +R66 +R644 +R72 +R84 +R503 +L13 +L90 +R78 +L517 +L61 +L35 +R35 +L72 +R258 +L83 +L45 +L8 +R395 +R65 +R37 +L47 +L202 +R2 +L84 +R86 +R98 +R51 +L451 +R69 +L796 +R27 +L60 +L106 +L36 +L42 +L25 +R69 +L10 +L885 +R398 +L8 +L95 +R80 +R36 +L33 +R879 +L62 +R94 +L94 +L15 +R26 +L87 +L24 +L6 +L36 +L858 +L25 +R25 +L74 +R37 +L1 +L11 +R388 +L88 +R68 +R64 +R17 +L42 +L90 +L682 +R25 +R89 +R96 +L30 +L83 +R17 +L2 +L3 +R40 +R65 +L91 +R44 +L53 +L20 +R20 +R46 +R510 +R69 +R75 +L4 +R4 +L5 +L87 +R892 +R76 +R36 +L12 +L93 +L18 +L77 +L12 +R96 +L611 +L74 +R89 +R41 +R81 +L22 +L26 +L74 +R28 +L459 +R31 +R85 +L97 +R24 +R49 +L24 +L80 +R74 +R69 +L82 +R282 +R10 +R3 +R87 +L21 +R43 +R378 +L455 +R55 +R52 +R48 +R26 +R50 +L67 +R91 +R729 +L49 +R20 +L93 +R78 +R71 +R88 +R56 +R38 +R43 +L81 +L176 +R576 +R885 +R59 +L13 +R2 +L33 +R13 +R87 +R17 +L417 +L90 +R745 +R50 +L8 +R32 +L4 +L67 +L70 +R28 +L214 +L2 +L40 +L97 +R37 +R65 +L346 +L48 +R29 +R3 +L3 +L87 +L29 +R35 +R63 +R79 +R39 +L76 +R49 +R78 +R75 +R41 +R157 +R18 +L42 +R47 +R74 +L21 +L177 +R68 +R37 +L96 +R788 +L16 +L4 +R61 +L714 +L947 +L90 +L84 +R74 +L9 +R9 +L26 +L74 +R14 +L14 +R21 +R737 +L58 +R12 +L829 +R40 +L23 +R14 +L49 +R779 +L8 +L85 +R49 +L61 +L39 +L80 +R74 +L94 +R26 +R40 +L75 +R9 +L78 +L91 +R69 +L65 +R970 +L41 +L64 +L10 +R71 +R508 +R60 +L829 +L22 +L478 +R34 +R904 +L19 +R58 +R96 +R527 +L12 +R12 +R86 +R465 +L74 +R460 +L99 +R62 +R205 +R26 +L31 +R401 +R53 +L54 +R29 +L29 +L19 +R97 +L78 +R7 +L7 +R144 +R56 +L484 +R35 +L11 +L65 +L775 +L882 +L18 +R19 +L825 +L59 +L990 +R63 +L8 +R30 +R70 +R17 +L24 +R91 +R11 +R205 +R21 +L21 +R45 +L45 +L7 +R807 +L813 +R13 +L87 +L313 +R64 +L564 +R20 +L20 +R65 +L20 +R99 +R98 +R58 +L722 +L78 +R89 +R311 +R75 +R77 +L852 +R26 +L826 +L95 +L305 +R57 +R10 +L58 +R37 +L54 +R8 +L10 +L590 +R171 +L203 +L16 +L38 +R86 +L902 +L65 +R47 +R4 +L396 +L12 +R524 +L910 +R993 +R35 +R72 +L90 +R30 +R867 +R42 +R485 +R24 +R50 +R90 +R96 +L66 +R52 +L70 +L129 +L871 +R46 +L40 +R988 +R96 +L618 +R43 +L15 +R15 +R46 +L69 +L68 +L324 +L5 +L598 +R21 +L21 +R59 +R44 +L98 +L2 +L86 +L14 +L42 +L4 +L5 +L49 +L98 +R97 +L99 +L90 +R90 +L32 +R322 +L90 +L60 +R432 +L65 +R43 +R57 +R77 +R31 +L19 +R67 +R41 +L4 +L75 +L25 +R30 +R977 +L7 +R3 +L3 +R20 +R13 +R67 +L26 +R23 +L97 +R87 +L87 +R99 +L99 +R66 +L93 +L73 +R43 +R658 +L173 +R12 +L49 +L891 +R5 +R59 +L64 +L34 +R54 +L20 +R9 +L9 +R5 +L5 +L54 +R30 +L97 +R69 +R52 +R52 +R48 +L16 +L61 +L23 +L23 +L56 +L89 +L95 +L16 +L97 +R60 +R79 +R68 +L67 +R695 +R41 +L881 +L350 +L50 +R81 +R65 +R35 +L42 +L82 +R24 +L34 +L2 +L64 +L34 +R34 +R36 +R81 +L17 +R453 +L39 +R29 +R63 +R15 +L21 +L85 +R54 +L8 +R24 +R15 +R870 +R30 +R197 +L97 +L732 +L68 +L793 +R63 +R30 +L604 +L23 +R15 +R939 +L82 +L645 +R81 +L746 +L50 +L822 +R49 +L781 +L59 +L966 +L61 +L79 +R35 +L21 +L90 +L26 +R26 +L90 +L3 +L90 +L98 +L56 +L55 +R2 +R55 +L55 +R72 +L42 +L38 +L92 +R604 +R96 +L87 +L13 +R759 +R859 +L54 +L10 +R51 +R20 +L25 +L35 +L38 +R36 +L963 +L11 +R56 +R92 +R18 +L155 +R271 +L74 +L33 +L16 +L48 +R20 +R12 +L92 +R42 +R73 +L34 +L83 +L14 +R83 +R84 +L546 +L998 +L858 +L89 +R34 +L12 +R19 +L41 +L23 +R74 +L31 +L20 +R28 +L31 +R3 +R80 +R487 +L67 +R348 +L805 +L439 +L23 +L81 +L24 +L42 +L834 +L68 +L2 +L32 +L98 +R880 +L80 +L95 +L605 +L44 +R860 +L31 +R85 +R30 +L39 +R11 +L472 +L88 +L57 +L57 +R180 +R222 +R14 +L44 +L17 +L53 +R21 +R61 +L76 +L32 +L60 +R86 +L53 +L85 +L1 +L69 +R15 +R22 +L7 +L958 +R36 +R99 +L99 +L7 +L993 +R43 +R57 +L95 +R58 +L63 +L55 +R55 +L14 +L9 +L86 +R23 +L314 +L14 +L31 +L55 +L80 +R8 +R372 +L77 +L23 +R73 +R27 +L920 +L93 +R58 +R74 +L64 +R85 +L22 +R69 +R52 +R61 +R74 +L681 +L497 +R33 +L29 +R28 +R72 +L15 +R15 +L67 +L23 +R69 +R41 +L27 +R7 +L85 +R60 +L37 +R762 +R67 +L91 +L784 +R8 +L519 +R88 +L491 +L78 +L73 +R73 +L58 +R58 +R27 +R34 +L57 +R96 +L46 +L54 +L37 +L12 +R549 +R54 +L47 +R93 +L36 +L64 +L54 +R54 +R15 +L37 +R22 +R19 +L712 +R93 +L91 +R56 +R67 +L32 +L92 +L108 +R11 +L691 +R643 +R96 +L96 +L63 +L63 +L62 +R25 +L46 +R546 +L95 +R944 +L611 +R436 +R48 +L22 +L4 +R90 +L86 +L314 +R81 +R33 +L99 +R99 +L565 +R87 +L33 +L89 +R3 +L3 +L909 +R56 +R19 +R62 +R48 +R4 +L62 +R369 +L298 +L89 +L593 +L69 +L339 +L67 +R89 +R72 +R7 +R93 +L99 +L894 +R47 +R53 +L380 +L25 +R5 +L67 +L33 +L64 +L27 +R86 +R96 +L30 +R907 +L11 +R65 +R78 +R55 +R73 +L926 +L23 +L87 +R8 +L51 +L49 +L71 +L66 +R37 +R24 +R330 +R46 +R456 +R9 +L65 +R41 +L42 +L793 +R48 +R646 +R21 +L148 +R27 +L95 +R53 +L977 +R750 +L31 +R2 +L85 +L17 +L61 +R61 +L41 +R56 +R11 +L88 +L62 +R72 +L14 +L78 +L584 +L81 +R9 +L27 +L45 +R97 +R75 +L45 +L55 +R793 +R7 +R1 +L23 +L545 +R67 +L403 +R20 +R870 +R438 +L25 +R6 +L51 +R58 +R87 +L16 +R72 +L56 +L26 +L26 +R852 +R74 +L74 +R55 +L87 +R32 +L16 +L62 +R78 +L45 +L651 +R24 +L82 +L46 +R61 +L6 +R45 +L24 +R61 +L66 +R829 +R33 +R67 +L99 +L316 +R67 +R63 +R876 +L91 +R97 +L97 +L49 +L51 +L99 +R999 +L43 +R40 +L45 +L52 +L584 +L16 +R92 +R7 +R267 +L20 +L46 +R55 +R17 +R7 +L5 +R26 +R18 +L42 +L76 +L315 +L289 +L73 +R44 +R35 +R152 +L27 +R73 +L528 +L6 +R568 +R44 +L216 +R13 +L42 +R67 +R68 +L268 +L41 +R36 +R55 +L56 +R6 +L870 +L90 +R14 +R91 +L45 +L21 +R54 +L25 +L54 +L54 +L60 +L799 +L35 +L59 +R85 +L14 +L28 +L99 +R9 +L33 +L22 +R98 +R84 +R57 +R16 +R2 +R77 +R57 +L67 +R31 +L83 +L13 +R503 +L94 +R87 +L678 +L10 +L49 +L163 +L22 +L78 +R2 +L30 +L53 +L289 +R70 +R9 +R55 +L86 +L10 +L68 +L60 +L81 +L8 +R24 +R30 +R15 +R92 +R4 +L26 +L11 +L83 +R82 +L225 +R47 +L377 +R67 +R10 +L75 +L325 +L59 +R61 +L52 +L901 +L34 +R29 +L424 +R401 +R526 +R94 +L41 +R10 +L610 +L373 +R92 +L68 +R85 +R130 +L466 +L68 +L32 +L88 +L8 +L91 +L497 +R84 +L28 +R25 +L24 +L73 +L1 +L906 +L102 +R9 +L78 +R46 +L786 +R44 +R80 +R77 +R88 +R29 +L5 +R87 +R10 +L65 +R93 +L79 +R959 +L11 +L33 +R44 +R228 +R87 +L47 +R156 +L19 +R22 +L27 +L89 +L89 +L20 +L99 +R97 +R393 +R7 +L24 +R76 +R57 +R738 +L47 +L42 +L48 +R90 +L54 +R94 +L23 +L351 +R50 +R47 +R65 +L59 +R731 +L28 +L34 +L38 +L65 +L81 +L54 +L39 +L66 +L15 +R46 +R59 +L17 +R11 +R99 +L63 +L99 +L16 +R623 +L23 +L99 +R27 +L28 +L91 +L87 +L22 +L99 +R43 +R56 +R3 +R566 +R431 +L86 +R628 +R59 +L31 +R30 +L40 +R68 +L66 +L62 +R48 +R52 +R14 +L92 +L49 +R27 +L96 +R45 +R5 +L62 +R8 +L38 +R338 +R32 +L87 +R55 +R48 +R62 +L43 +L51 +R84 +L74 +R47 +L6 +L867 +R48 +L48 +R67 +L67 +L753 +L93 +L28 +L19 +R40 +L147 +R31 +R534 +R90 +R970 +L68 +R143 +L44 +L687 +R4 +R127 +R734 +R660 +L94 +L39 +L61 +L57 +R23 +R79 +R28 +L973 +R7 +R93 +R58 +L69 +L70 +L15 +L69 +L47 +L88 +L97 +L77 +R30 +R44 +R41 +L18 +R77 +R56 +R163 +R81 +R94 +L510 +R574 +R42 +L49 +L29 +L519 +R86 +L489 +L27 +R86 +R441 +R593 +L93 +R70 +L811 +L73 +R512 +R99 +L97 +L81 +L19 +L462 +R284 +L22 +R88 +R12 +L163 +R4 +L41 +L966 +R9 +L43 +R99 +L18 +L33 +R52 +L85 +R28 +R44 +L644 +L945 +R2 +R8 +R24 +L32 +L87 +R166 +R29 +R239 +R747 +L94 +L12 +R91 +R47 +L34 +R49 +L59 +R18 +L78 +R78 +R7 +L7 +L44 +L67 +L84 +R8 +L331 +L22 +R76 +R17 +L90 +R14 +L577 +L23 +R113 +R916 +R92 +R30 +R38 +R68 +R66 +L41 +R41 +L91 +L57 +L56 +R42 +L338 +R16 +R84 +R4 +L26 +L6 +R28 +R2 +L2 +L28 +R20 +R8 +R87 +L66 +R25 +R54 +L51 +R32 +L81 +L43 +R43 +L17 +L83 +R78 +L401 +L77 +R68 +L22 +R56 +R58 +R35 +L25 +R30 +L82 +L80 +R62 +R411 +R89 +L58 +L79 +R9 +R57 +R43 +L72 +L66 +L34 +R65 +L65 +L9 +L258 +R435 +R88 +R44 +R50 +L34 +L813 +L603 +R68 +L43 +R16 +L69 +R96 +R32 +R6 +L6 +R5 +L5 +R57 +L81 +L376 +L98 +L18 +R398 +L82 +R7 +R93 +L762 +R199 +L32 +L155 +L73 +R23 +R76 +R765 +R55 +L96 +R34 +L33 +L29 +L37 +L735 +R21 +R32 +R15 +R46 +R40 +L5 +L253 +R24 +L14 +L6 +R455 +L55 +R741 +R18 +R441 +L60 +R60 +R24 +L386 +R91 +R71 +R85 +R90 +R53 +R72 +R76 +L76 +R89 +R11 +R83 +R941 +L24 +L795 +R95 +R896 +R542 +R462 +L28 +R54 +L733 +R7 +L20 +R20 +L49 +R92 +L45 +R94 +R80 +L26 +L46 +L47 +L338 +R34 +R51 +R37 +R20 +L803 +L57 +L70 +R12 +L71 +R45 +R67 +L48 +L61 +L71 +R727 +L65 +L90 +L272 +L27 +R27 +L864 +L579 +L462 +R36 +R1 +L82 +R73 +L31 +L871 +L2 +L19 +R7 +R68 +L75 +R50 +L69 +L38 +R57 +L80 +R499 +R10 +R54 +R109 +R78 +L19 +R58 +R79 +R805 +R57 +R75 +R42 +R63 +L17 +L44 +R85 +R893 +L37 +R90 +L7 +R807 +L59 +L941 +R642 +R85 +L95 +L92 +L943 +R71 +R792 +L60 +R36 +R64 +L606 +L7 +R6 +R64 +L21 +R96 +L432 +L89 +R89 +L57 +L20 +L23 +L67 +R58 +L2 +R96 +L85 +L61 +L26 +L69 +L91 +L89 +R376 +R89 +R51 +L437 +R99 +L5 +R63 +L63 +L72 +R65 +R583 +R5 +L56 +R64 +R57 +L83 +L97 +R97 +R35 +R752 +L487 +L685 +R90 +L80 +R23 +R2 +L84 +L66 +R24 +R87 +R6 +L17 +R71 +L71 +R645 +L395 +R50 +L30 +R17 +L78 +L58 +L74 +R34 +L410 +L8 +L14 +R88 +R966 +L37 +R4 +R682 +L82 +L52 +L81 +R86 +L53 +R99 +R301 +R786 +R18 +R315 +L17 +L942 +R40 +L87 +L89 +R7 +R91 +R6 +L58 +R730 +R515 +L15 +L60 +L67 +R61 +L73 +R750 +L440 +L56 +R785 +L48 +L52 +L8 +R25 +L6 +R89 +L91 +R85 +R96 +L56 +R866 +R77 +L77 +L34 +L67 +L548 +L51 +L24 +L12 +R39 +R97 +R4 +R96 +L2 +R470 +R704 +R28 +R12 +R25 +L985 +L52 +L29 +R24 +R834 +R64 +R15 +R77 +L41 +L879 +R835 +L6 +R12 +R994 +L92 +L94 +R30 +L21 +L230 +R56 +R688 +R81 +L51 +R11 +R35 +L113 +L992 +L54 +L54 +R94 +R9 +R73 +R124 +R14 +R232 +L46 +R86 +R14 +R61 +L61 +R47 +R56 +L3 +L93 +R49 +L56 +R72 +L25 +L47 +R66 +R50 +L31 +L18 +L667 +R557 +R143 +L51 +L275 +L7 +R18 +R84 +L969 +L941 +L715 +R76 +R80 +L602 +R27 +R41 +L272 +R120 +L14 +L12 +L56 +L628 +R96 +R85 +L37 +R58 +L6 +R173 +L73 +R48 +R52 +R77 +R80 +R214 +R829 +L205 +R26 +L21 +L59 +R59 +L69 +R53 +L65 +R99 +R80 +R2 +R78 +R283 +R36 +L51 +R554 +L71 +R18 +R53 +L608 +L78 +L176 +L38 +R34 +R543 +R80 +L347 +R121 +L31 +L4 +L996 +L56 +L44 +R372 +L837 +L35 +L583 +R65 +R18 +R78 +R22 +R35 +L55 +R20 +L57 +L943 +L20 +R90 +L16 +L748 +L62 +R56 +R61 +R47 +R62 +L70 +R7 +R93 +L168 +L36 +L52 +L457 +R13 +R38 +L438 +R1 +L1 +R28 +R573 +L91 +L15 +R7 +R83 +L990 +L95 +R75 +L318 +L57 +R77 +R59 +L84 +R44 +L73 +R17 +R27 +L67 +L75 +R12 +L79 +L5 +R47 +L23 +R248 +L11 +L69 +R55 +R19 +L19 +L73 +L60 +R23 +L90 +L234 +L171 +L795 +L40 +L984 +R124 +R671 +L7 +L35 +R75 +R39 +L43 +R44 +R17 +L752 +R288 +L94 +R458 +R39 +L68 +L32 +L7 +L19 +R26 +R55 +R93 +R52 +L45 +R45 +L3 +L72 +L25 +R42 +L42 +R65 +R35 +L80 +L20 +R83 +L83 +R99 +L99 +L41 +R41 +R12 +R84 +R4 +L29 +L96 +L75 +L59 +L20 +R54 +R78 +R99 +L436 +L79 +L26 +L311 +L14 +R514 +R533 +R567 +R34 +R227 +R44 +L5 +R53 +R80 +R73 +R94 +L50 +R52 +R41 +R57 +L16 +R42 +L31 +L95 +R97 +L97 +L36 +L77 +R13 +L92 +R61 +L34 +L35 +L41 +L18 +L41 +R12 +L70 +R58 +L18 +L34 +L83 +R235 +R28 +L598 +L49 +R19 +R19 +R35 +L758 +R4 +R77 +R64 +L76 +L94 +L1 +L70 +L32 +R518 +R691 +R52 +R302 +R38 +R656 +R75 +L54 +R76 +L22 +R16 +R384 +R9 +R66 +R41 +R65 +L981 +L39 +L271 +L47 +R4 +R928 +R1 +L61 +R85 +R45 +R1 +R94 +R24 +L11 +R47 +L645 +R45 +R85 +L85 +L18 +R15 +R3 +L6 +R56 +R31 +R19 +L82 +L18 +L28 +R28 +R932 +L81 +R49 +L9 +R58 +R598 +R53 +R5 +L5 +R79 +L247 +L32 +R48 +R43 +L393 +L98 +L19 +L81 +R36 +R981 +L23 +L687 +R5 +R462 +R634 +R58 +R14 +R20 +R629 +L71 +L683 +R5 +L58 +R899 +R936 +R590 +R53 +L494 +L6 +L67 +R54 +R55 +L35 +L33 +L2 +L72 +L25 +L45 +R70 +R73 +L53 +R91 +L97 +R47 +R25 +R14 +L81 +L38 +L67 +R45 +L59 +R19 +R49 +L82 +R14 +L76 +L20 +R96 +R58 +R16 +R26 +R76 +R97 +L35 +L85 +R37 +L90 +L97 +R38 +L87 +R46 +R69 +R67 +L59 +L93 +R16 +R47 +R53 +R75 +R25 +R11 +L47 +L21 +R45 +L7 +R18 +L5 +L13 +R49 +R44 +R24 +L14 +L10 +L46 +R38 +R31 +L5 +R20 +R19 +L27 +L42 +L1 +R46 +R20 +L15 +R1 +R39 +R48 +L48 +L16 +L49 +R37 +L41 +L12 +R20 +L34 +L30 +L2 +L44 +R39 +R6 +L5 +L40 +L1 +R18 +R7 +R2 +R48 +R31 +R25 diff --git a/day1/app/test-input1.txt b/day1/app/test-input1.txt new file mode 100644 index 0000000..53287c7 --- /dev/null +++ b/day1/app/test-input1.txt @@ -0,0 +1,10 @@ +L68 +L30 +R48 +L5 +R60 +L55 +L1 +L99 +R14 +L82 diff --git a/day1/day1.cabal b/day1/day1.cabal new file mode 100644 index 0000000..e7d022e --- /dev/null +++ b/day1/day1.cabal @@ -0,0 +1,76 @@ +cabal-version: 3.14 +-- The cabal-version field refers to the version of the .cabal specification, +-- and can be different from the cabal-install (the tool) version and the +-- Cabal (the library) version you are using. As such, the Cabal (the library) +-- version used must be equal or greater than the version stated in this field. +-- Starting from the specification version 2.2, the cabal-version field must be +-- the first thing in the cabal file. + +-- Initial package description 'day1' generated by +-- 'cabal init'. For further documentation, see: +-- http://haskell.org/cabal/users-guide/ +-- +-- The name of the package. +name: day1 + +-- The package version. +-- See the Haskell package versioning policy (PVP) for standards +-- guiding when and how versions should be incremented. +-- https://pvp.haskell.org +-- PVP summary: +-+------- breaking API changes +-- | | +----- non-breaking API additions +-- | | | +--- code changes with no API change +version: 0.1.0.0 + +-- A short (one-line) description of the package. +-- synopsis: + +-- A longer description of the package. +-- description: + +-- The license under which the package is released. +license: MIT + +-- The file containing the license text. +license-file: LICENSE + +-- The package author(s). +author: radumaco + +-- An email address to which users can send suggestions, bug reports, and patches. +maintainer: rmacocian@yahoo.com + +-- A copyright notice. +-- copyright: +build-type: Simple + +-- Extra doc files to be distributed with the package, such as a CHANGELOG or a README. +extra-doc-files: CHANGELOG.md + +-- Extra source files to be distributed with the package, such as examples, or a tutorial module. +-- extra-source-files: + +common warnings + ghc-options: -Wall + +executable day1 + -- Import common warning flags. + import: warnings + + -- .hs or .lhs file containing the Main module. + main-is: Main.hs + + -- Modules included in this executable, other than Main. + -- other-modules: + + -- LANGUAGE extensions used by modules in this package. + -- other-extensions: + + -- Other library packages from which modules are imported. + build-depends: base ^>=4.22.0.0 + + -- Directories containing source files. + hs-source-dirs: app + + -- Base language which the package is written in. + default-language: GHC2024