Avoiding long `with` blocks

I believe the purpose of with is to separate the ‘happy’ path from error handling, so that one could easily see what the code is supposed to do and then dig into corner cases if necessary. While I see some similarity to try/catch, I don’t see what it has to do with imperative programming :thinking: Anyway, I found myself ending up with long withs when I didn’t consider raising instead of returning :ok/:error, so I’d suggest to make sure that whenever you return an error, there is a potential need (or even possibility) to handle that error somewhere else. Otherwise it’s better to raise right away, to keep the code simpler, fail fast and make errors and stack traces more readable. That said, I don’t think that (reasonably) long withs are bad by themselves, but they have some quirks - withl is my attempt to solve them.