anchor.diff:  -spec ?CONSTRUCTOR(binary()) -> type().
   ?CONSTRUCTOR(Str) ->
     #?TYPE{data = start_link(Str)}.
  +
  +-spec delete(type(), pos_integer(), pos_integer()) -> type().
  +delete(#?TYPE{name = ?M, data = Pid}, Start, End) ->
  +  case send_command(Pid, {delete, Start, End}) of
  +    {error, _} -> error(<<"Couldn't delete range in erlang.io.StringWriter">>);
  +    Count      -> Count
  +  end.
   
   %%------------------------------------------------------------------------------
   %% Protocols
  
positive.code: -behaviour('erlang.io.IWriter').
  
  -export([?CONSTRUCTOR/0, ?CONSTRUCTOR/1]).
  -export([ start_link/1
          , init/1
          , loop/1
          ]).
  
  
negative.code:         , write/3
          ]).
  
  -export([delete/3]).
  
  -type type() :: #?TYPE{data :: pid()}.
  
  -spec ?CONSTRUCTOR() -> type().
  