-
Notifications
You must be signed in to change notification settings - Fork 465
/
Copy pathbelt_Option.js
127 lines (104 loc) · 2.09 KB
/
belt_Option.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import * as Curry from "./curry.js";
import * as Caml_option from "./caml_option.js";
function forEachU(opt, f) {
if (opt !== undefined) {
return f(Caml_option.valFromOption(opt));
}
}
function forEach(opt, f) {
return forEachU(opt, Curry.__1(f));
}
function getExn(param) {
if (param !== undefined) {
return Caml_option.valFromOption(param);
}
throw new Error("getExn");
}
function mapWithDefaultU(opt, $$default, f) {
if (opt !== undefined) {
return f(Caml_option.valFromOption(opt));
} else {
return $$default;
}
}
function mapWithDefault(opt, $$default, f) {
return mapWithDefaultU(opt, $$default, Curry.__1(f));
}
function mapU(opt, f) {
if (opt !== undefined) {
return Caml_option.some(f(Caml_option.valFromOption(opt)));
}
}
function map(opt, f) {
return mapU(opt, Curry.__1(f));
}
function flatMapU(opt, f) {
if (opt !== undefined) {
return f(Caml_option.valFromOption(opt));
}
}
function flatMap(opt, f) {
return flatMapU(opt, Curry.__1(f));
}
function getWithDefault(opt, $$default) {
if (opt !== undefined) {
return Caml_option.valFromOption(opt);
} else {
return $$default;
}
}
function isSome(param) {
return param !== undefined;
}
function isNone(x) {
return x === undefined;
}
function eqU(a, b, f) {
if (a !== undefined) {
if (b !== undefined) {
return f(Caml_option.valFromOption(a), Caml_option.valFromOption(b));
} else {
return false;
}
} else {
return b === undefined;
}
}
function eq(a, b, f) {
return eqU(a, b, Curry.__2(f));
}
function cmpU(a, b, f) {
if (a !== undefined) {
if (b !== undefined) {
return f(Caml_option.valFromOption(a), Caml_option.valFromOption(b));
} else {
return 1;
}
} else if (b !== undefined) {
return -1;
} else {
return 0;
}
}
function cmp(a, b, f) {
return cmpU(a, b, Curry.__2(f));
}
export {
forEachU ,
forEach ,
getExn ,
mapWithDefaultU ,
mapWithDefault ,
mapU ,
map ,
flatMapU ,
flatMap ,
getWithDefault ,
isSome ,
isNone ,
eqU ,
eq ,
cmpU ,
cmp ,
}
/* No side effect */