     case string do
       <<prefix::size(prefix_size)-binary, suffix::binary>> when prefix == match ->
         prepend_unless_empty(replacement, suffix)
+
       _ ->
         string
     end

    rem_filler =
      rem(count, size)
      |> build_filler(source, source, 0, [])
    filler =
      filler
      |> IO.iodata_to_binary
      |> duplicate(div(count, size) + 1)
    [filler | rem_filler]
  end

  defp build_filler(count, source, [elem | rest], size, filler)
      when is_binary(elem) do
    build_filler(count - 1, source, rest, size + 1, [filler | elem])
  end


  def myers_difference(string1, string2) do
    List.myers_difference(graphemes(string1), graphemes(string2))
    |> Enum.map(fn {kind, chars} ->
         {kind, IO.iodata_to_binary(chars)}
       end)
  end

  # TODO: Remove by 2.0
