* Complex numbers are a nice way of modeling two-dimensional positions.
* Use lists whenever feasible, because there are many useful list functions in the Racket library that don’t have vector equivalents.
* In particular, [these list functions](https://docs.racket-lang.org/reference/pairs.html?q=racket%2Flist#%28part._.Additional_.List_.Functions_and_.Synonyms%29) are very useful.
* The `graph` library can be useful for graph-based problems.
* I like doing the Advent of Code problems because it forces me to use parts of Racket that I don’t ordinarily use. So I treat it as a chance to expand my awareness of the Racketverse.