anchor.diff:    
     Stream handle(Request request) {
       if (request.local['globalErrorHandling'] == false) {
  -      return delegate.handle(request);
  +      return _handleLocally(request);
       }
   
       int retry = 0;
  
positive.code:     
      return doRpc().asStream();
    }
  }
  
negative.code: typedef Future RetryStrategy(int retryCount);
  
  Future<bool> retryImmediately(int retryCount) => new Future.value(true);
  
  typedef void StreamyRpcRetryFn();
  
  class StreamyRpcException implements Exception {
    final int httpStatus;
    final Request request;
    bool get retryable => false;
    final List<Map> errors;
    Map get error => errors[0];
    
    StreamyRpcException._private(this.httpStatus, this.request, this.errors);
  }
  
  class StreamyRetryableRpcException extends StreamyRpcException {
    
    final int retryCount;
    final StreamyRpcExceptionRetryFn retry;
    
    bool get retryable => true;
    
    StreamyRetryableRpcException._wrap(StreamyRpcException e, this.retryCount, this.retry) : super(e.httpStatus, e.request, e.errors)
    
  
  class NotRetryableException implements Exception {
    toString() => "[notRetryable: Streamy request is not retryable]";
  }
  
  class RetryingRequestHandler extends RequestHandler {
    
  