anchor.diff:      _socket.sendString(JSON.encode(msg));
     }
   
  -  Message _process(Message msg) {
  +  /// Returns a reply [Message], an error [String], or null.
  +  dynamic _process(Message msg) {
       html.window.console.log(msg);
   
       switch (msg.type) {
  
positive.code:     _socket.onMessage.listen((event) {
        var reply = _process(new Message.fromJson(event.data));
  
        if (reply != null) {
          _send(reply);
        }
  
      });
    }
  
  
negative.code:         break;
        case MessageType.receive:
          if (!isConnected) {
            return "Receiving messages but not connected? ${msg}";
          }
  
          return new ConfirmMessage(msg.id);
        default:
          return "Unsupported message: ${msg}";
      }
  
      return null;
  