Comment by jjjensen90
5 years ago
Though I don't think it's perfect, languages like Go that treat errors as simply another type and you check as a return value do get closer to treating errors and success symmetrically versus an exception throwing and typing system like some other languages.
Building on that, the ADT languages with full option types here are fantastic here, because the shape of the data in each case can be taught to the compiler.