Note that your print function does not use the io argument, i.e., always prints to stdout. In the string interpolation print gets passed an IOBuffer instead and should write to that.
Long story short, your example works for me if I define:
print(io::IO, c::Cell) = print(io, ">>($(c.row),$(c.col))")