All of these solutions use functional programming techniques, in particular using immutable data structures.
A handful use the Cats and FS2 libraries to demonstrate different Monads and purely functional streams.
The original puzzles can be found https://adventofcode.com