# Make Order Explicit

> A technique for expressing a required call order in types or a state machine instead of in documentation.

Record: `lexicon:make-order-explicit`
Kind: technique
Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)
Canonical: https://banes-lab.com/ontology/lexicon#lexicon-make-order-explicit

Listed in [Lexicon terms](https://banes-lab.com/api/records/lexicon.md), after [Encode State Machine](https://banes-lab.com/records/lexicon/encode-state-machine.md) and before [Scattered Null Guards](https://banes-lab.com/records/lexicon/scattered-null-guards.md).

## Category

- [Behavioral Patterns](https://banes-lab.com/records/lexicon-category/behavioral-patterns.md)

## Refactors

- [Temporal Coupling](https://banes-lab.com/records/architecture/temporal-coupling.md)
- [Causality](https://banes-lab.com/records/architecture/causality.md)
- [Happens-Before Relationship](https://banes-lab.com/records/architecture/happens-before-relationship.md)

## Linked from

- [Anti-patterns](https://banes-lab.com/ontology/principles/architecture-category-anti-patterns.md)
- [Causality / Ordering / Distributed Time](https://banes-lab.com/ontology/principles/architecture-category-causality-ordering-distributed-time.md)
