anchor.diff:        };
   }
   
  -dynamic _handleError(dynamic err, StackTrace s) {
  -  if (err is PlatformException && err.code.startsWith('@ejdb')) {
  -    return Future.error(EJDB2Error(err.code, err.message), s);
  -  }
  -  return Future.error(err, s);
  -}
  +FutureOr<T> Function(Object, StackTrace) _errorHandler<T>() =>
  +  (Object err, StackTrace s) {
  +    if (err is PlatformException && err.code.startsWith('@ejdb')) {
  +    return Future<T>.error(EJDB2Error(err.code, err.message), s);
  +    }
  +    return Future<T>.error(err, s);
  +  };
   
   class EJDB2Error implements Exception {
     EJDB2Error(this.code, this.message);
  
positive.code:   /// Get json body of database metadata.
    Future<dynamic> info() => _mc
        .invokeMethod('info', [_handle])
        .catchError(_handleError)
        .then((v) => convert_lib.jsonDecode(v as String));
  
    /// Removes database [collection].
    Future<void> removeCollection(String collection) =>
        _mc.invokeMethod('removeCollection', [_handle, collection]).catchError(_handleError);
  
    /// Renames database collection.
    Future<void> renameCollection(String oldName, String newName) {
      return _mc
          .invokeMethod('renameCollection', [_handle, oldName, newName]).catchError(_handleError);
    }
  
    Future<void> ensureStringIndex(String coll, String path, [bool unique]) =>
  
negative.code: 
    /// Remove document identified by [id] from specified [collection].
    Future<void> del(String collection, int id) =>
        _mc.invokeMethod('del', [_handle, collection, id]).catchError(_errorHandler());
  
    /// Remove document identified by [id] from specified [collection].
    /// Doesn't raise error if document is not found.
  