Yeah, we struggled with how to do errors right in Rust for a long time, and it&#x27;s really interesting to see that we almost ended up in the same place as Midori. The main differences are:<p>- Midori (and Swift) uses effects instead of monadic types (probably good, since we dodge the interactions with generics described at the end, but the &quot;throws&quot; syntax is so sweet);<p>- Rust uses a return codes implementation instead of an unwinding implementation (for simplicity&#x27;s sake; some Rust users really don&#x27;t like unwinding, for legitimate reasons in many cases, but Midori&#x27;s arguments in favor of unwinding are compelling);<p>- Rust lets you catch panics at thread boundaries (one of the most controversial decisions in Rust; I think it was the right one, but I definitely acknowledge that it&#x27;s a big tradeoff).