Does Optional solve a problem that Result does not anymore?

While that's antithetical to the conceit of this thread, it's a useful idea and still demonstrative that Result should be some kind of property wrapper. As it is, you have to re-wrap one, and that sort of initializer can't be used on parameters (yet).

@propertyWrapper struct Success<Success> {
  struct Error: Swift.Error { }

  init(wrappedValue: Result<Success, some Any>) {
    projectedValue = wrappedValue.mapError { _ in .init() }
  }

  var projectedValue: Result<Success, Error>
  var wrappedValue: Success? { try? projectedValue.get() }
}

isomorphinTime: do {
  @Success var value = Result { 0.0 }
  value?.isZero // true
}