visitor foo compact