Add safe visitor combinator