solution to depth-first-search

I've offered a depth-first-search solution on the '99 problems' page. Unfortunately, due to issues (https://github.com/ocaml/opam/issues/1410) installing opam-lib, haven't been able to see how it renders (but it should be fine).
(state.color) → state.color