tuple: improve base_opt + constructors; vectorized operator ->*