Yeah, we use a fixed-E alias of folly::Expected<> in our codebase which is similar to absl::StatusOr. Something like:
namespace our_project {
class Status { ... };
template <class T>
using Expected = folly::Expected<T, Status>;
}
absl::StatusOr<T> looks a lot like our_project::Expected<T>. This pattern of providing your own error type and aliasing Result is also somewhat common in Rust, I believe.
https://abseil.io/docs/cpp/guides/status