In Java-8 it does not seem to be possible to construct a recursive function
through a lambda-expression. As a work-around an instance of this class can
be passed on as a place holder to the reference to the top level function
(which we want to recurse on).