This section is inspired by Ninety-Nine Lisp Problems which in turn was based on “Prolog problem list”. https://ocaml.org/learn/tutorials/99problems.html