Why do we need this rather than make a combinator on AsyncBase directly? Can't we glue two together?