8 Commits

Author SHA1 Message Date
George Thomas
415055dcc2 Allow output types to vary for different parts of same day
For now this applies to Haskell only, and it may turn out to be tricky for the Rust implementation.

In practice, the limitation hasn't turned out to be important, and we could even go the other way and use `Integer` everywhere. This does however at least help with debugging, as well as just being conceptually right.

The `nil` and `(/\)` functions are intended to be overloaded to work for other list-like things in a later commit, and from there we will investigate using `OverloadedLists` and `RebindableSyntax` to recover standard list syntax, although there are probably limitations due to `(:)` being special.
2025-12-16 16:15:11 +00:00
George Thomas
b438db7d53 Rename square type to rectangle 2025-12-09 19:50:35 +00:00
George Thomas
57c1613019 Move output showing to main entry point 2025-12-09 16:57:05 +00:00
George Thomas
2862457529 Solve day 9 part 2 2025-12-09 13:37:39 +00:00
George Thomas
0e2a3c81ac Correct error message 2025-12-09 13:35:54 +00:00
George Thomas
e85429629f Generalise allUnorderedPairs
Now that it's in the prelude, the desire to remove diagonals is less obvious than it was.
2025-12-09 13:35:54 +00:00
George Thomas
c608e21e26 Solve day 9 part 1 2025-12-09 13:35:54 +00:00
George Thomas
ce70643476 Initialise day 9 2025-12-09 10:27:50 +00:00