I consider the function-delegate thing a reasonably solved problem, starting in the next release of Phobos. See: http://dsource.org/projects/phobos/changeset/1428