[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Order](https://evolu.dev/docs/api-reference/common/Order) › Order

```ts
type Order<A> = (x: A, y: A) => Ordering;
```

Defined in: [packages/common/src/Order.ts:21](https://github.com/evoluhq/evolu/blob/59dabb7c56c68040b30d3919013adeb2b40bad10/packages/common/src/Order.ts#L21)

Compares two values of type `A` and returns their ordering.

Ordering functions start with an 'order' prefix, e.g., `orderNumber`.

- Returns `-1` if `x` is less than `y`.
- Returns `0` if `x` is equal to `y`.
- Returns `1` if `x` is greater than `y`.

An `Order` also defines equality. Use [eqFromOrder](https://evolu.dev/docs/api-reference/common/Eq/functions/eqFromOrder) to derive an
[Eq](https://evolu.dev/docs/api-reference/common/Eq/type-aliases/Eq).