Implemented in F#.
As always, remember that any input files here are unique to my account, so you need your own inputs. And the fun is in the challenge, so please try the challenge yourself before looking at my solutions!
If you have ideas or thoughts on how to improve my solutions, I'd be happy to take a look and learn more about F#. Please feel free to send PRs. I may not merge them, but I promise I'll try to read any PRs I get!