(self: RBT.RedBlackTree<K, V>)
| 214 | |
| 215 | /** @internal */ |
| 216 | export const first = <K, V>(self: RBT.RedBlackTree<K, V>): Option.Option<[K, V]> => { |
| 217 | let node: Node.Node<K, V> | undefined = (self as RedBlackTreeImpl<K, V>)._root |
| 218 | let current: Node.Node<K, V> | undefined = (self as RedBlackTreeImpl<K, V>)._root |
| 219 | while (node !== undefined) { |
| 220 | current = node |
| 221 | node = node.left |
| 222 | } |
| 223 | return current ? Option.some([current.key, current.value]) : Option.none() |
| 224 | } |
| 225 | |
| 226 | /** @internal */ |
| 227 | export const getAt = dual< |