# gleam/order

# Types

# Functions

`pub fn compare(a: Order, with b: Order) -> Order`

Compares two `Order`

values to one another, producing a new `Order`

.

## Examples

```
compare(Eq, with: Lt)
// -> Gt
```

`pub fn max(a: Order, b: Order) -> Order`

Returns the largest of two orders given that `Gt > Eq > Lt`

.

## Examples

```
max(Eq, Lt)
// -> Eq
```

`pub fn min(a: Order, b: Order) -> Order`

Returns the smallest of two orders given that `Gt > Eq > Lt`

.

## Examples

```
min(Eq, Lt)
// -> Lt
```

`pub fn negate(order: Order) -> Order`

Inverts an order, so less-than becomes greater-than and greater-than becomes less-than.

## Examples

```
negate(Lt)
// -> Gt
```

```
negate(Eq)
// -> Eq
```

```
negate(Lt)
// -> Gt
```

`pub fn reverse(orderer: fn(a, a) -> Order) -> fn(a, a) -> Order`

Inverts an ordering function, so less-than becomes greater-than and greater-than becomes less-than.

## Examples

```
import gleam/int
import gleam/list
list.sort([1, 5, 4], by: reverse(int.compare))
// -> [5, 4, 1]
```