Appearance
type MaybePromise<T> = T | PromiseLike<T> | Promise<T>;
Utility type for values that can be synchronous or asynchronous
T