```py def charge(order: Order) -> E.Effect[Receipt, CardDeclined | CardExpired, PaymentGateway]: ... ```
So not only success value but also errors and requirements are typed. This makes not only people but also agents more productive. Effecton also comes with many building blocks like http client or file system (including in memory implementation for tests).