#6 separated dependent signature visitor into separate type specific visitors