19 lines
365 B
Racket
19 lines
365 B
Racket
#lang typed-scheme
|
|
|
|
(: f (All (a ...) ((a ... a -> Integer) -> (a ... a -> Integer))))
|
|
(define (f x) x)
|
|
|
|
(: y (Integer Integer -> Integer))
|
|
(define (y a b) (+ a b))
|
|
|
|
#{(f y) :: (Integer Integer -> Integer)}
|
|
|
|
(: z (Integer * -> Integer))
|
|
(define (z . xs) (apply + xs))
|
|
|
|
((f z) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18)
|
|
|
|
(f z)
|
|
|
|
#{(f z) :: (Integer * -> Integer)}
|