For ADL to work, it seems like then the corresponding overloads for operator<< operator>> will also need to also go into thrust::detail::tuple_detail.