Implementation
Iterable<OnData<TParsed>> get callbacks {
var callbacks = List<OnData<TParsed>?>.empty(growable: true);
callbacks.addAll([onCompleted, onError]);
// FIXME: can we remove the type in whereType?
return callbacks.whereType<OnData<TParsed>>();
}