The error message says that it cannot decide which method to choose (it’s ambiguous). write(io, T::Tuple)
matches the second argument, and write(io::IO, x)
matches the first argument. So which method should it choose for write(io::IO, x::Tuple)
?
So it suggests that you should define a method definition for write(io::IO, x::Tuple)
. So add ::IO
to the method you defined.
But I suggest this definition instead of the loop:
Base.write(io::IO, x::Tuple) = write(io::IO, x...)