     when 'number', 'boolean' then utils.stringDiff left.toString(), right.toString()
     when 'object'
       unless utils.isArray(left) is utils.isArray(right)
-        return utils.TAGS.delStart + utils.inspect(left, depth) + utils.TAGS.delEnd +
-               utils.TAGS.insStart + utils.inspect(right, depth) + utils.TAGS.insEnd
+        return utils.del(utils.inspect left, depth) +
+               utils.ins(utils.inspect right, depth)
 
       ind = utils.fill (depth) * 2
       prevInd = utils.fill (depth - 1) * 2


  unless typeLeft is typeRight
    s = ''
    s += utils.TAGS.delStart + utils.inspect(left, depth) + utils.TAGS.delEnd if left?
    s += utils.TAGS.insStart + utils.inspect(right, depth) + utils.TAGS.insEnd if right?
    return s

  switch typeLeft

    i = 0

    while i < out.o.length
      str += utils.del utils.escape(out.o[i]) + oSpace[i]
      i++
  else
    unless out.n[0].text?
      n = 0
      while n < out.o.length and not out.o[n].text?
        str += utils.del utils.escape(out.o[n]) + oSpace[n]
        n++
    i = 0

    while i < out.n.length
      unless out.n[i].text?
        str += utils.ins utils.escape(out.n[i]) + nSpace[i]
      else
        pre = ""
        n = out.n[i].row + 1
        while n < out.o.length and not out.o[n].text?
          pre += utils.del utils.escape(out.o[n]) + oSpace[n]
          n++
        str += "" + out.n[i].text + nSpace[i] + pre
      i++
