@@ -139,12 +139,12 @@ program
139
139
!`$fOrdInteger_$ccompare` : integer -> integer -> Ordering
140
140
= \(eta : integer) (eta : integer) ->
141
141
Bool_match
142
- (ifThenElse { Bool} (equalsInteger eta eta) True False)
142
+ (case Bool (equalsInteger eta eta) [ False, True] )
143
143
{all dead. Ordering}
144
144
(/\dead -> EQ)
145
145
(/\dead ->
146
146
Bool_match
147
- (ifThenElse { Bool} (lessThanEqualsInteger eta eta) True False)
147
+ (case Bool (lessThanEqualsInteger eta eta) [ False, True] )
148
148
{all dead. Ordering}
149
149
(/\dead -> LT)
150
150
(/\dead -> GT)
@@ -162,19 +162,18 @@ program
162
162
ds
163
163
{Bool}
164
164
(\(n' : integer) (d' : integer) ->
165
- ifThenElse
166
- { Bool}
165
+ case
166
+ Bool
167
167
(lessThanEqualsInteger
168
168
(multiplyInteger n d')
169
169
(multiplyInteger n' d))
170
- True
171
- False))
170
+ [False, True]))
172
171
in
173
172
letrec
174
173
!euclid : integer -> integer -> integer
175
174
= \(x : integer) (y : integer) ->
176
175
Bool_match
177
- (ifThenElse { Bool} (equalsInteger 0 y) True False)
176
+ (case Bool (equalsInteger 0 y) [ False, True] )
178
177
{all dead. integer}
179
178
(/\dead -> x)
180
179
(/\dead -> euclid y (modInteger x y))
@@ -184,12 +183,12 @@ program
184
183
!unsafeRatio : integer -> integer -> Rational
185
184
= \(n : integer) (d : integer) ->
186
185
Bool_match
187
- (ifThenElse { Bool} (equalsInteger 0 d) True False)
186
+ (case Bool (equalsInteger 0 d) [ False, True] )
188
187
{all dead. Rational}
189
188
(/\dead -> error {Rational})
190
189
(/\dead ->
191
190
Bool_match
192
- (ifThenElse { Bool} (lessThanInteger d 0) True False)
191
+ (case Bool (lessThanInteger d 0) [ False, True] )
193
192
{all dead. Rational}
194
193
(/\dead ->
195
194
unsafeRatio (subtractInteger 0 n) (subtractInteger 0 d))
@@ -211,6 +210,8 @@ program
211
210
(\v -> List (Tuple2 PredKey (List v))) Rational -> ParamValue
212
211
in
213
212
let
213
+ !ifThenElse : all a. bool -> a -> a -> a
214
+ = /\a -> \(b : bool) (x : a) (y : a) -> case a b [y, x]
214
215
data Unit | Unit_match where
215
216
Unit : Unit
216
217
in
@@ -232,16 +233,12 @@ program
232
233
(CConsOrd
233
234
{integer}
234
235
(\(x : integer) (y : integer) ->
235
- ifThenElse { Bool} (equalsInteger x y) True False)
236
+ case Bool (equalsInteger x y) [ False, True] )
236
237
`$fOrdInteger_$ccompare`
237
238
(\(x : integer) (y : integer) ->
238
- ifThenElse { Bool} (lessThanInteger x y) True False)
239
+ case Bool (lessThanInteger x y) [ False, True] )
239
240
(\(x : integer) (y : integer) ->
240
- ifThenElse
241
- {Bool}
242
- (lessThanEqualsInteger x y)
243
- True
244
- False)
241
+ case Bool (lessThanEqualsInteger x y) [False, True])
245
242
(\(x : integer) (y : integer) ->
246
243
ifThenElse
247
244
{Bool}
@@ -252,22 +249,14 @@ program
252
249
ifThenElse {Bool} (lessThanInteger x y) False True)
253
250
(\(x : integer) (y : integer) ->
254
251
Bool_match
255
- (ifThenElse
256
- {Bool}
257
- (lessThanEqualsInteger x y)
258
- True
259
- False)
252
+ (case Bool (lessThanEqualsInteger x y) [False, True])
260
253
{all dead. integer}
261
254
(/\dead -> y)
262
255
(/\dead -> x)
263
256
{all dead. dead})
264
257
(\(x : integer) (y : integer) ->
265
258
Bool_match
266
- (ifThenElse
267
- {Bool}
268
- (lessThanEqualsInteger x y)
269
- True
270
- False)
259
+ (case Bool (lessThanEqualsInteger x y) [False, True])
271
260
{all dead. integer}
272
261
(/\dead -> x)
273
262
(/\dead -> y)
@@ -292,18 +281,16 @@ program
292
281
{Bool}
293
282
(\(n' : integer) (d' : integer) ->
294
283
Bool_match
295
- (ifThenElse
296
- { Bool}
284
+ (case
285
+ Bool
297
286
(equalsInteger n n')
298
- True
299
- False)
287
+ [False, True])
300
288
{all dead. Bool}
301
289
(/\dead ->
302
- ifThenElse
303
- { Bool}
290
+ case
291
+ Bool
304
292
(equalsInteger d d')
305
- True
306
- False)
293
+ [False, True])
307
294
(/\dead -> False)
308
295
{all dead. dead})))
309
296
(\(ds : Rational) (ds : Rational) ->
@@ -327,13 +314,12 @@ program
327
314
ds
328
315
{Bool}
329
316
(\(n' : integer) (d' : integer) ->
330
- ifThenElse
331
- { Bool}
317
+ case
318
+ Bool
332
319
(lessThanInteger
333
320
(multiplyInteger n d')
334
321
(multiplyInteger n' d))
335
- True
336
- False)))
322
+ [False, True])))
337
323
`$fOrdRational0_$c<=`
338
324
(\(ds : Rational) (ds : Rational) ->
339
325
Rational_match
@@ -344,11 +330,13 @@ program
344
330
ds
345
331
{Bool}
346
332
(\(n' : integer) (d' : integer) ->
333
+ let
334
+ !x : integer = multiplyInteger n d'
335
+ !y : integer = multiplyInteger n' d
336
+ in
347
337
ifThenElse
348
338
{Bool}
349
- (lessThanEqualsInteger
350
- (multiplyInteger n d')
351
- (multiplyInteger n' d))
339
+ (lessThanEqualsInteger x y)
352
340
False
353
341
True)))
354
342
(\(ds : Rational) (ds : Rational) ->
@@ -360,11 +348,13 @@ program
360
348
ds
361
349
{Bool}
362
350
(\(n' : integer) (d' : integer) ->
351
+ let
352
+ !x : integer = multiplyInteger n d'
353
+ !y : integer = multiplyInteger n' d
354
+ in
363
355
ifThenElse
364
356
{Bool}
365
- (lessThanInteger
366
- (multiplyInteger n d')
367
- (multiplyInteger n' d))
357
+ (lessThanInteger x y)
368
358
False
369
359
True)))
370
360
(\(x : Rational) (y : Rational) ->
@@ -399,7 +389,7 @@ program
399
389
ds
400
390
{list data -> Bool}
401
391
(\(eta : list data) ->
402
- ifThenElse { Bool} (nullList {data} eta) True False)
392
+ case Bool (nullList {data} eta) [ False, True] )
403
393
(\(paramValueHd : ParamValue)
404
394
(paramValueTl : List ParamValue)
405
395
(actualValueData : list data) ->
@@ -499,12 +489,12 @@ program
499
489
!args : list data = sndPair {integer} {list data} tup
500
490
in
501
491
Bool_match
502
- (ifThenElse { Bool} (equalsInteger 1 index) True False)
492
+ (case Bool (equalsInteger 1 index) [ False, True] )
503
493
{all dead. Maybe a}
504
494
(/\dead -> Nothing {a})
505
495
(/\dead ->
506
496
Bool_match
507
- (ifThenElse { Bool} (equalsInteger 0 index) True False)
497
+ (case Bool (equalsInteger 0 index) [ False, True] )
508
498
{all dead. Maybe a}
509
499
(/\dead ->
510
500
Just {a} (`$dUnsafeFromData` (headList {data} args)))
@@ -5330,13 +5320,12 @@ program
5330
5320
(unConstrData ds)))))
5331
5321
in
5332
5322
Bool_match
5333
- (ifThenElse
5334
- { Bool}
5323
+ (case
5324
+ Bool
5335
5325
(equalsInteger
5336
5326
5
5337
5327
(fstPair {integer} {list data} tup))
5338
- True
5339
- False)
5328
+ [False, True])
5340
5329
{all dead. data}
5341
5330
(/\dead ->
5342
5331
headList
@@ -5357,11 +5346,10 @@ program
5357
5346
!tup : pair integer (list data) = unConstrData scrut
5358
5347
in
5359
5348
Bool_match
5360
- (ifThenElse
5361
- { Bool}
5349
+ (case
5350
+ Bool
5362
5351
(equalsInteger 0 (fstPair {integer} {list data} tup))
5363
- True
5364
- False)
5352
+ [False, True])
5365
5353
{all dead. r}
5366
5354
(/\dead ->
5367
5355
let
@@ -5397,11 +5385,10 @@ program
5397
5385
!tup : pair integer (list data) = unConstrData scrut
5398
5386
in
5399
5387
Bool_match
5400
- (ifThenElse
5401
- { Bool}
5388
+ (case
5389
+ Bool
5402
5390
(equalsInteger 2 (fstPair {integer} {list data} tup))
5403
- True
5404
- False)
5391
+ [False, True])
5405
5392
{all dead. r}
5406
5393
(/\dead ->
5407
5394
let
0 commit comments