# Introduce Typed Result

> A technique for returning success or a typed error as a value, so callers handle failure through the type system.

Record: `lexicon:introduce-typed-result`
Kind: technique
Layer: [Correctness Core](https://banes-lab.com/records/layer/correctness-core.md)
Canonical: https://banes-lab.com/ontology/lexicon#lexicon-introduce-typed-result

Listed in [Lexicon terms](https://banes-lab.com/api/records/lexicon.md), after [Verbosity](https://banes-lab.com/records/lexicon/verbosity.md) and before [Translate Errors at the Boundary](https://banes-lab.com/records/lexicon/translate-errors-at-the-boundary.md).

## Category

- [Error Handling / Resilience](https://banes-lab.com/records/lexicon-category/error-handling-resilience.md)

## Refactors

- [Inconsistent Error Model](https://banes-lab.com/records/architecture/inconsistent-error-model.md)
- [Exception Control Flow](https://banes-lab.com/records/architecture/exception-control-flow.md)
- [Null Semantics Drift](https://banes-lab.com/records/architecture/null-semantics-drift.md)
- [Log-as-Control-Flow](https://banes-lab.com/records/architecture/log-as-control-flow.md)
- [Postconditions](https://banes-lab.com/records/architecture/postconditions.md)
- [Error Handling](https://banes-lab.com/records/architecture/error-handling.md)

## Linked from

- [Anti-patterns](https://banes-lab.com/ontology/principles/architecture-category-anti-patterns.md)
- [Contracts / Interfaces / Compatibility](https://banes-lab.com/ontology/principles/architecture-category-contracts-interfaces-compatibility.md)
- [Error Handling / Resilience](https://banes-lab.com/ontology/principles/architecture-category-error-handling-resilience.md)
