Skip to content

Commit b9e2059

Browse files
authored
Add docstring for Null.compare and Null.equal (#7562)
* Add docstring for Null.compare and Null.equal * Use ==
1 parent a76bba6 commit b9e2059

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

runtime/Stdlib_Null.resi

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,43 @@ let asNullValue = myStr->Null.make // The compiler now thinks this can be `strin
4747
*/
4848
external make: 'a => t<'a> = "%identity"
4949

50+
/**
51+
`equal(a, b, eq)` checks if `a` and `b` are equal.
52+
If both are `Null.Value`, it will use function `eq` to check if the values are equal.
53+
54+
## Examples
55+
```rescript
56+
let a = Null.Value(1)
57+
let b = Null.null
58+
let c = Null.Value(2)
59+
60+
Null.equal(a, b, Int.equal) == false
61+
Null.equal(a, c, Int.equal) == false
62+
Null.equal(Null.null, Null.null, Int.equal) == true
63+
```
64+
*/
5065
let equal: (t<'a>, t<'b>, ('a, 'b) => bool) => bool
5166

67+
/**
68+
`compare(a, b, cmp)` compares `a` and `b`.
69+
If both are `Null.Value`, it will use function `cmp` to compare the values.
70+
71+
## Examples
72+
```rescript
73+
let a = Null.Value(1)
74+
let b = Null.null
75+
let c = Null.Value(2)
76+
77+
// A value is greater than null
78+
Null.compare(a, b, Int.compare) == Stdlib_Ordering.greater
79+
// A value is less than null
80+
Null.compare(b, a, Int.compare) == Stdlib_Ordering.less
81+
// A null is equal to null
82+
Null.compare(Null.null, Null.null, Int.compare) == Stdlib_Ordering.equal
83+
// The compare function is used if both are `Null.Value`
84+
Null.compare(a, c, Int.compare) == Stdlib_Ordering.less
85+
```
86+
*/
5287
let compare: (t<'a>, t<'b>, ('a, 'b) => Stdlib_Ordering.t) => Stdlib_Ordering.t
5388

5489
/**

0 commit comments

Comments
 (0)