message: Prevent utility types from matching to result<T> templated constructor
  If `result<T>` is being constructed from `error`, `delegated<T>`
  and the likes, then corresponding `result_base<T>` constructor must be
  used.
diff: @@ -184,7 +184,9 @@ public:
  using super::super;
  - template <class U, class = std::enable_if_t<std::is_constructible_v<T, U>>>
  + template <class U, class = std::enable_if_t<
  + std::is_constructible_v<T, U> && !std::is_constructible_v<super, U>
  + >>
  result(U&& x)
  : super(detail::result_base_message_init{}, T{std::forward<U>(x)}) {
  // nop
  