Generic enums with Void associated values

Related thread:

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