wip: lazy visit in def