Related thread:
My workaround is to define something like enum Unit: Equatable { case unit }, producing Result<Unit> instead of Result<Void>.
enum Unit: Equatable { case unit }
Result<Unit>
Result<Void>