Cleaning the example more, still has problems with mutual-recursion.