The example for the bst traversal is nice: ``` let rec traverse_bst = function | Node.Empty -> return () | Node.Branch (left, value, right) -> traverse_bst left >>= fun () -> yield value >>= fun () -> traverse_bst right ```