19 lines
517 B
Racket
19 lines
517 B
Racket
#lang typed/racket
|
|
|
|
(: f (case-> (-> Integer)
|
|
(Integer -> Integer)))
|
|
(define (f [#{z : Integer} 0]) z)
|
|
#;
|
|
(define-values
|
|
(f)
|
|
(let-values (((#{core3 : (case-> (Integer True -> Integer)
|
|
(Univ False -> Integer))})
|
|
(lambda (z1 z2) (let-values (((#{z : Integer}) (if z2 z1 '0)))
|
|
(let-values () z)))))
|
|
(case-lambda (() (#%app core3 '#f '#f))
|
|
((z1) (#%app core3 z1 '#t)))))
|
|
|
|
|
|
(add1 (f 0))
|
|
(add1 (f))
|