-
Notifications
You must be signed in to change notification settings - Fork 464
/
Copy pathBelt_Result.js
115 lines (98 loc) · 1.49 KB
/
Belt_Result.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
function getExn(x) {
if (x.TAG === "Ok") {
return x._0;
}
throw {
RE_EXN_ID: "Not_found",
Error: new Error()
};
}
function mapWithDefault(opt, $$default, f) {
if (opt.TAG === "Ok") {
return f(opt._0);
} else {
return $$default;
}
}
function map(opt, f) {
if (opt.TAG === "Ok") {
return {
TAG: "Ok",
_0: f(opt._0)
};
} else {
return {
TAG: "Error",
_0: opt._0
};
}
}
function flatMap(opt, f) {
if (opt.TAG === "Ok") {
return f(opt._0);
} else {
return {
TAG: "Error",
_0: opt._0
};
}
}
function getWithDefault(opt, $$default) {
if (opt.TAG === "Ok") {
return opt._0;
} else {
return $$default;
}
}
function isOk(x) {
return x.TAG === "Ok";
}
function isError(x) {
return x.TAG !== "Ok";
}
function eq(a, b, f) {
if (a.TAG === "Ok") {
if (b.TAG === "Ok") {
return f(a._0, b._0);
} else {
return false;
}
} else {
return b.TAG !== "Ok";
}
}
function cmp(a, b, f) {
if (a.TAG === "Ok") {
if (b.TAG === "Ok") {
return f(a._0, b._0);
} else {
return 1;
}
} else if (b.TAG === "Ok") {
return -1;
} else {
return 0;
}
}
let mapWithDefaultU = mapWithDefault;
let mapU = map;
let flatMapU = flatMap;
let eqU = eq;
let cmpU = cmp;
export {
getExn,
mapWithDefaultU,
mapWithDefault,
mapU,
map,
flatMapU,
flatMap,
getWithDefault,
isOk,
isError,
eqU,
eq,
cmpU,
cmp,
}
/* No side effect */