anchor.diff:  
   print(Eed, {A, C, E}) ->
     print(Eed, A, C, E).
  +print(Eed, "", ",", "") ->
  +  printAll(Eed);
   print(Eed, "", "", "") ->
     CurLine = sendRecv(Eed, getLineNumber),
     print(Eed, CurLine, CurLine);
  
positive.code: linenumValid(Eed, Num) ->
    (Num > 0) and (Num =< sendRecv(Eed, lineCount)).
  
  setLineNumber(Eed, Num) ->
    NumValid = linenumValid(Eed, Num),
    if NumValid -> sendRecv(Eed, setLineNumber, Num),
  
negative.code: runcmd(Eed, Command) ->
    {match,[[A,C,E,O], _]} = re:run(Command,"([[:digit:]]*)(,?)([[:digit:]]*)([[:alpha:]+-]?)",[global,{capture,all_but_first,list}]),
  
    Range = {A, C, E},
  
    case O of
      "q" -> {quit, ""};
      "p" -> print(Eed, Range);
      "a" -> append(Eed), {ok, ""};
      "d" -> delete(Eed);
      "+" -> setLineNumber(Eed, sendRecv(Eed, getLineNumber) + 1);
      "-" -> setLineNumber(Eed, sendRecv(Eed, getLineNumber) - 1);
      _ -> setLineNumber(Eed, Range)
    end.
  
  cmdloop(Eed) ->
  