HCoop
/
hcoop
/
debian
/
mlton.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
blame
|
history
|
raw
|
HEAD
Import Upstream version 20180207
[hcoop/debian/mlton.git]
/
regression
/
nonexhaustive.sml
1
(*
nonexhaustive
.
sml
*)
2
3
val
_
=
4
case
2
of
5
2
=>
3
6
|
3
=>
4
7
8
val
_
=
9
case
[]
of
10
[] =>
1
11
12
val
_
=
13
case
[]
of
14
[] =>
0
15
|
[
_
] =>
1
16
|
[
_
,
_
] =>
2
17
18
fun
first l
=
19
case
l
of
20
SOME x
::
_
=>
x
21
22
fun
f x
=
23
case
x
of
24
(
false
,
false
) => ()
25
|
(
true
,
true
) => ()
26
27
datatype
z
=
A | B | C
28
29
fun
f x
=
30
case
x
of
31
(
A
,
B
,
C
) => ()
32
33
val
_
=
34
case
Fail
"foo"
of
35
Fail _
=>
false
36
37
val
_
=
38
case
(
1
, [])
of
39
(
1
, []) =>
true
40
41
val
_
=
42
case
(
1
, [])
of
43
(
1
,
_
) =>
true
44
45
fun
f
1 2
=
3
46
47
fun
f
""
= ()
48
49
fun
f #
"a"
=
13
50
51
fun
f
(
0
w0
:
Word8
.
word
) =
13
52
53
(*
Checks for non
-
exhaustive pattern
matches
(
compiler should warn
). *)
54
55
fun
ord #
"
\000
"
=
0
56
| ord #
"
\002
"
=
2
57
| ord #
"
\003
"
=
3
58
| ord #
"
\004
"
=
4
59
| ord #
"
\005
"
=
5
60
| ord #
"
\006
"
=
6
61
| ord #
"
\007
"
=
7
62
| ord #
"
\008
"
=
8
63
| ord #
"
\009
"
=
9
64
| ord #
"
\010
"
=
10
65
| ord #
"
\011
"
=
11
66
| ord #
"
\012
"
=
12
67
| ord #
"
\013
"
=
13
68
| ord #
"
\014
"
=
14
69
| ord #
"
\015
"
=
15
70
| ord #
"
\016
"
=
16
71
| ord #
"
\017
"
=
17
72
| ord #
"
\018
"
=
18
73
| ord #
"
\019
"
=
19
74
| ord #
"
\020
"
=
20
75
| ord #
"
\021
"
=
21
76
| ord #
"
\022
"
=
22
77
| ord #
"
\023
"
=
23
78
| ord #
"
\024
"
=
24
79
| ord #
"
\025
"
=
25
80
| ord #
"
\026
"
=
26
81
| ord #
"
\027
"
=
27
82
| ord #
"
\028
"
=
28
83
| ord #
"
\029
"
=
29
84
| ord #
"
\030
"
=
30
85
| ord #
"
\031
"
=
31
86
| ord #
"
\032
"
=
32
87
| ord #
"
\033
"
=
33
88
| ord #
"
\034
"
=
34
89
| ord #
"
\035
"
=
35
90
| ord #
"
\036
"
=
36
91
| ord #
"
\037
"
=
37
92
| ord #
"
\038
"
=
38
93
| ord #
"
\039
"
=
39
94
| ord #
"
\040
"
=
40
95
| ord #
"
\041
"
=
41
96
| ord #
"
\042
"
=
42
97
| ord #
"
\043
"
=
43
98
| ord #
"
\044
"
=
44
99
| ord #
"
\045
"
=
45
100
| ord #
"
\046
"
=
46
101
| ord #
"
\047
"
=
47
102
| ord #
"
\048
"
=
48
103
| ord #
"
\049
"
=
49
104
| ord #
"
\050
"
=
50
105
| ord #
"
\051
"
=
51
106
| ord #
"
\052
"
=
52
107
| ord #
"
\053
"
=
53
108
| ord #
"
\054
"
=
54
109
| ord #
"
\055
"
=
55
110
| ord #
"
\056
"
=
56
111
| ord #
"
\057
"
=
57
112
| ord #
"
\058
"
=
58
113
| ord #
"
\059
"
=
59
114
| ord #
"
\060
"
=
60
115
| ord #
"
\061
"
=
61
116
| ord #
"
\062
"
=
62
117
| ord #
"
\063
"
=
63
118
| ord #
"
\064
"
=
64
119
| ord #
"
\065
"
=
65
120
| ord #
"
\066
"
=
66
121
| ord #
"
\067
"
=
67
122
| ord #
"
\068
"
=
68
123
| ord #
"
\069
"
=
69
124
| ord #
"
\070
"
=
70
125
| ord #
"
\071
"
=
71
126
| ord #
"
\072
"
=
72
127
| ord #
"
\073
"
=
73
128
| ord #
"
\074
"
=
74
129
| ord #
"
\075
"
=
75
130
| ord #
"
\076
"
=
76
131
| ord #
"
\077
"
=
77
132
| ord #
"
\078
"
=
78
133
| ord #
"
\079
"
=
79
134
| ord #
"
\080
"
=
80
135
| ord #
"
\081
"
=
81
136
| ord #
"
\082
"
=
82
137
| ord #
"
\083
"
=
83
138
| ord #
"
\084
"
=
84
139
| ord #
"
\085
"
=
85
140
| ord #
"
\086
"
=
86
141
| ord #
"
\087
"
=
87
142
| ord #
"
\088
"
=
88
143
| ord #
"
\089
"
=
89
144
| ord #
"
\090
"
=
90
145
| ord #
"
\091
"
=
91
146
| ord #
"
\092
"
=
92
147
| ord #
"
\093
"
=
93
148
| ord #
"
\094
"
=
94
149
| ord #
"
\095
"
=
95
150
| ord #
"
\096
"
=
96
151
| ord #
"
\097
"
=
97
152
| ord #
"
\098
"
=
98
153
| ord #
"
\099
"
=
99
154
| ord #
"
\100
"
=
100
155
| ord #
"
\101
"
=
101
156
| ord #
"
\102
"
=
102
157
| ord #
"
\103
"
=
103
158
| ord #
"
\104
"
=
104
159
| ord #
"
\105
"
=
105
160
| ord #
"
\106
"
=
106
161
| ord #
"
\107
"
=
107
162
| ord #
"
\108
"
=
108
163
| ord #
"
\109
"
=
109
164
| ord #
"
\110
"
=
110
165
| ord #
"
\111
"
=
111
166
| ord #
"
\112
"
=
112
167
| ord #
"
\113
"
=
113
168
| ord #
"
\114
"
=
114
169
| ord #
"
\115
"
=
115
170
| ord #
"
\116
"
=
116
171
| ord #
"
\117
"
=
117
172
| ord #
"
\118
"
=
118
173
| ord #
"
\119
"
=
119
174
| ord #
"
\120
"
=
120
175
| ord #
"
\121
"
=
121
176
| ord #
"
\122
"
=
122
177
| ord #
"
\123
"
=
123
178
| ord #
"
\124
"
=
124
179
| ord #
"
\125
"
=
125
180
| ord #
"
\126
"
=
126
181
| ord #
"
\127
"
=
127
182
| ord #
"
\128
"
=
128
183
| ord #
"
\129
"
=
129
184
| ord #
"
\130
"
=
130
185
| ord #
"
\131
"
=
131
186
| ord #
"
\132
"
=
132
187
| ord #
"
\133
"
=
133
188
| ord #
"
\134
"
=
134
189
| ord #
"
\135
"
=
135
190
| ord #
"
\136
"
=
136
191
| ord #
"
\137
"
=
137
192
| ord #
"
\138
"
=
138
193
| ord #
"
\139
"
=
139
194
| ord #
"
\140
"
=
140
195
| ord #
"
\141
"
=
141
196
| ord #
"
\142
"
=
142
197
| ord #
"
\143
"
=
143
198
| ord #
"
\144
"
=
144
199
| ord #
"
\145
"
=
145
200
| ord #
"
\146
"
=
146
201
| ord #
"
\147
"
=
147
202
| ord #
"
\148
"
=
148
203
| ord #
"
\149
"
=
149
204
| ord #
"
\150
"
=
150
205
| ord #
"
\151
"
=
151
206
| ord #
"
\152
"
=
152
207
| ord #
"
\153
"
=
153
208
| ord #
"
\154
"
=
154
209
| ord #
"
\155
"
=
155
210
| ord #
"
\156
"
=
156
211
| ord #
"
\157
"
=
157
212
| ord #
"
\158
"
=
158
213
| ord #
"
\159
"
=
159
214
| ord #
"
\160
"
=
160
215
| ord #
"
\161
"
=
161
216
| ord #
"
\162
"
=
162
217
| ord #
"
\163
"
=
163
218
| ord #
"
\164
"
=
164
219
| ord #
"
\165
"
=
165
220
| ord #
"
\166
"
=
166
221
| ord #
"
\167
"
=
167
222
| ord #
"
\168
"
=
168
223
| ord #
"
\169
"
=
169
224
| ord #
"
\170
"
=
170
225
| ord #
"
\171
"
=
171
226
| ord #
"
\172
"
=
172
227
| ord #
"
\173
"
=
173
228
| ord #
"
\174
"
=
174
229
| ord #
"
\175
"
=
175
230
| ord #
"
\176
"
=
176
231
| ord #
"
\177
"
=
177
232
| ord #
"
\178
"
=
178
233
| ord #
"
\179
"
=
179
234
| ord #
"
\180
"
=
180
235
| ord #
"
\181
"
=
181
236
| ord #
"
\182
"
=
182
237
| ord #
"
\183
"
=
183
238
| ord #
"
\184
"
=
184
239
| ord #
"
\185
"
=
185
240
| ord #
"
\186
"
=
186
241
| ord #
"
\187
"
=
187
242
| ord #
"
\188
"
=
188
243
| ord #
"
\189
"
=
189
244
| ord #
"
\190
"
=
190
245
| ord #
"
\191
"
=
191
246
| ord #
"
\192
"
=
192
247
| ord #
"
\193
"
=
193
248
| ord #
"
\194
"
=
194
249
| ord #
"
\195
"
=
195
250
| ord #
"
\196
"
=
196
251
| ord #
"
\197
"
=
197
252
| ord #
"
\198
"
=
198
253
| ord #
"
\199
"
=
199
254
| ord #
"
\200
"
=
200
255
| ord #
"
\201
"
=
201
256
| ord #
"
\202
"
=
202
257
| ord #
"
\203
"
=
203
258
| ord #
"
\204
"
=
204
259
| ord #
"
\205
"
=
205
260
| ord #
"
\206
"
=
206
261
| ord #
"
\207
"
=
207
262
| ord #
"
\208
"
=
208
263
| ord #
"
\209
"
=
209
264
| ord #
"
\210
"
=
210
265
| ord #
"
\211
"
=
211
266
| ord #
"
\212
"
=
212
267
| ord #
"
\213
"
=
213
268
| ord #
"
\214
"
=
214
269
| ord #
"
\215
"
=
215
270
| ord #
"
\216
"
=
216
271
| ord #
"
\217
"
=
217
272
| ord #
"
\218
"
=
218
273
| ord #
"
\219
"
=
219
274
| ord #
"
\220
"
=
220
275
| ord #
"
\221
"
=
221
276
| ord #
"
\222
"
=
222
277
| ord #
"
\223
"
=
223
278
| ord #
"
\224
"
=
224
279
| ord #
"
\225
"
=
225
280
| ord #
"
\226
"
=
226
281
| ord #
"
\227
"
=
227
282
| ord #
"
\228
"
=
228
283
| ord #
"
\229
"
=
229
284
| ord #
"
\230
"
=
230
285
| ord #
"
\231
"
=
231
286
| ord #
"
\232
"
=
232
287
| ord #
"
\233
"
=
233
288
| ord #
"
\234
"
=
234
289
| ord #
"
\235
"
=
235
290
| ord #
"
\236
"
=
236
291
| ord #
"
\237
"
=
237
292
| ord #
"
\238
"
=
238
293
| ord #
"
\239
"
=
239
294
| ord #
"
\240
"
=
240
295
| ord #
"
\241
"
=
241
296
| ord #
"
\242
"
=
242
297
| ord #
"
\243
"
=
243
298
| ord #
"
\244
"
=
244
299
| ord #
"
\245
"
=
245
300
| ord #
"
\246
"
=
246
301
| ord #
"
\247
"
=
247
302
| ord #
"
\248
"
=
248
303
| ord #
"
\249
"
=
249
304
| ord #
"
\250
"
=
250
305
| ord #
"
\251
"
=
251
306
| ord #
"
\252
"
=
252
307
| ord #
"
\253
"
=
253
308
| ord #
"
\254
"
=
254
309
| ord #
"
\255
"
=
255
;