They conveniently leave off the fact that with type inference you don't need to annotate all the
functions.
Such an opportunity to use a decent functional language here, especially since functional languages
are so much better at handling complex data structures.