add non-const visitor interface (#22)
add unary_visitor test