опять же не все можно переделать под себя даже в кложе даже с макросами. Пример:
вдохновившись другими языками и нежеланием писать “императивный try-cactch” года полтора назад в команде решили сделать обработку ошибок через Either подобный тип. Все вроде хорошо было, написали даже какое-то подобие do-нотации, чтоб код был визуально проще, но в какой-то момент пришло осознание, что без нормальной поддержки компилятором это жить не будет и вернулись обратно к try-catch, хотя Either-подобный подход красивее и проще.