#lang typed/racket (: foo (-> (-> (Values String)) String)) (define (foo f) (f)) (: bar (-> (Values String String))) (define (bar) (values "foo" "bar")) (foo bar) ;; multiple-values.rkt:10:5: Type Checker: type mismatch ;; expected: (-> String) ;; given: (-> (values String String)) ;; in: bar ;; context...: ;; /usr/share/racket/pkgs/typed-racket-lib/typed-racket/typecheck/tc-toplevel.rkt:314:0: type-check ;; /usr/share/racket/pkgs/typed-racket-lib/typed-racket/typecheck/tc-toplevel.rkt:552:0: tc-module ;; /usr/share/racket/pkgs/typed-racket-lib/typed-racket/tc-setup.rkt:82:0: tc-module/full ;; /usr/share/racket/pkgs/typed-racket-lib/typed-racket/typed-racket.rkt:24:4