I like the more rigorous correctness. I think though that not having Decodable
is a limitation large enough that it defeats the intent of the pitch.
Put a better way:
Result<Int, Never>
is a type all of whose values can in theory be losslessly converted to and from Data
, but the compiler does not currently treat Result<Int, Never>
as Codable
, and the purpose of this pitch is to fix that obvious missed opportunity. Any solution under which Result<Int, Never>
can’t be decoded is leaving chips on the table.
Wishing for an overview of the opinion space …
Here’s a concrete example from this current thread which relates to the consensus building system that I’ve mentioned:
Regarding the concept of Never
conforming to a protocol with initializer or factory method requirements - there’s clearly something to say there, but evidently it’s not “Never
should never conform to such a protocol” or we wouldn’t be considering this pitch. I would love to be able to browse exactly how each participant here would phrase their various assertions about the topics at hand (for example that one).
@tera, regarding your question, I don’t have the system thoroughly conceived yet, but I have plenty of ideas which I’m slowly considering how to formulate, at which point I’ll post it and let you know. One key thing that I can tell you concisely is that I believe that the core value comes through the combination of users discretizing their opinions into individual assertions (e.g. “Never
should never conform to a protocol with initializer requirements.”) and the system providing the ability to interact in ways that are clearer than “liking”. Specifically I think that some key interactions would include “I agree”, “I confirm” and “I trust” (not all of which are applicable to all types of content, which is an important wrinkle to consider).