Visitor pattern with double dispatch

Hello,

following some comments about the visitor pattern, I've made a complete refactoring of your example with unit tests and double dispatch.

HTH

:beers: