def sparse_tuples
      tuples = to_a
      [tuples.first] + each_cons(2).map { |prev, cur|
        left = cur.zip(prev).drop_while { |c, p| c == p }
        [nil] * (cur.size - left.size) + left.map(&:first)
      }
    end
Return tuples with nils in place of repeating values, like this:

[:a , :bar, :one]
[nil, nil , :two]
[nil, :foo, :one]