In Don’t let it crash,
we saw how Seamless makes recoverable failure explicit in return types.
Result and Maybe tell callers when an operation can fail. But what happens
when several fallible operations depend on one another?
Consider a route handler: it needs to recognize a path, parse an ID, and build a route.
Handling each result with a case and placing the next operation inside its
successful branch pushes the route construction further to the right. This
growing indentation is often called the pyramid of doom.