anchor.diff:  %% writing operations.
   %%------------------------------------------------------------------------------
   
  --type state() :: #{ reader        => 'erlang.io.IReader':type()
  -                  , buffer        => binary()
  -                  , at_line_start => boolean()
  +-type state() :: #{ reader             => 'erlang.io.IReader':type()
  +                  , buffer             => binary()
  +                  , at_line_start      => boolean()
  +                  , at_line_start_prev => boolean()
                     }.
   
   -spec send_command(pid(), any()) -> any().
  
positive.code:   {more, {cont, Length - 1, State#{buffer := RestStr}}}.
  
  -spec unread_buffer(state(), binary()) -> {ok | {error, term()}, state()}.
  unread_buffer(State = #{buffer := Buffer}, Str) ->
    try
      {ok, State#{buffer := <<Str/binary, Buffer/binary>>}}
    catch
      _:Reason ->
        {{error, Reason}, State}
    end.
  
negative.code: 
  -spec init('erlang.io.IReader':type()) -> no_return().
  init(Reader) ->
    State = #{ reader             => Reader
             , buffer             => <<>>
             , at_line_start      => true
             , at_line_start_prev => true
             },
    ?MODULE:loop(State).
  
  