And the "?" operator is way more ergonomic for throwing actual errors up a level than all the boilerplate in Go.
The pattern matching with `match` `if let` and `let else` are pretty easy to use to unwrap Result and Option enums.
And then the "anyhow" or "thiserror" crates make it all more ergonomic.
The end result is something is much more readable than all the error handling in Go, while still being at least as safe if not more safe.
Plus you wind up playing with Monads without needing to know what the hell an endofunctor is.
And there's no null/nil, while Options have to be explicit and if you squint (because of the presbyopia) they look kinda like the nillable stuff in C# 8.0