This actually happened quite a while ago - I spent a few weeks obsessed with the wonderful Advent of Code after participating in the last couple years, and ground out the full 300 stars:
My complete Haskell solutions are up on GitHub.
There are a handful of things I’d love to write about, but for now here’s my cleanest take on A* in Haskell, which became an old friend over the course of the project:
with typical output:
Shortest path between corners: 8
It turns out random grids are nearly always either unsolvable, or there’s no need for backtracking and one can reach the other corner in (W+H-2) moves.