# Concepts

> Handle results, transform their values, and catch exceptions.

## Documentation

- [Results](https://hulla.dev/docs/control/results.md): Create success and error branches, narrow their payloads, and choose error values that fit the caller.
- [Chaining operations](https://hulla.dev/docs/control/chaining.md): Transform success and error payloads with map and mapErr while preserving the selected result branch.
- [Catching exceptions](https://hulla.dev/docs/control/attempts.md): Turn thrown exceptions and rejected promises into Result values.
- [Asynchronous results](https://hulla.dev/docs/control/async.md): Return results from async functions or keep a promise inside a result.
