A type that accepts either a Result or AsyncResult with the same T and E types.
This allows functions to return either synchronous or asynchronous results interchangeably, making it easy to optimize or refactor without changing signatures.
E extends BaseError