Hyperlinkv0.8.0-beta.28

Option

Option.makeOrderconsteffect/Option.ts:2103
<A>(O: Order<A>): Order<Option<A>>

Creates an Order for Option<A> from an Order for A.

When to use

Use when you need to sort Some and None values, with None ordered before present values and present values compared by a supplied ordering rule.

Details

  • None is considered less than any Some
  • Two Some values are compared using the provided Order
  • Two None values are equal (returns 0)

Example (Ordering Options)

import { Number as N, Option } from "effect"

const ord = Option.makeOrder(N.Order)

console.log(ord(Option.none(), Option.some(1)))
// Output: -1

console.log(ord(Option.some(1), Option.none()))
// Output: 1

console.log(ord(Option.some(1), Option.some(2)))
// Output: -1
sorting
Source effect/Option.ts:21032 lines
export const makeOrder = <A>(O: Order<A>): Order<Option<A>> =>
  order.make((self, that) => isSome(self) ? (isSome(that) ? O(self.value, that.value) : 1) : -1)