I would write the program this way: #lang typed/racket
(: exit-with-error-msg : String Any * -> Any) (define (exit-with-error-msg m . e) (apply eprintf m e) (exit 1)) Note that we explicitly require at least one argument, the format string. In your program, Typed Racket can't tell that you won't call `exit-with-error-msg` with 0 arguments, which would not be correct for `eprintf`. Sam On Fri, Jun 27, 2014 at 1:52 PM, Manfred Lotz <manfred.l...@arcor.de> wrote: > I have this: > > (define (exit-with-error-msg . e) > (apply eprintf e) > (exit 1)) > > > When using it with typed racket I get: > > test.rkt:127:4: Type Checker: Bad arguments to function in apply: > Domain: String Any * > Arguments: (Listof Any) * > > in: (apply eprintf e) > context...: > > /home/manfred/racket/share/pkgs/typed-racket-lib/typed-racket/typecheck/tc-toplevel.rkt:249:0: > type-check > /home/manfred/racket/share/pkgs/typed-racket-lib/typed-racket/tc-setup.rkt:40:0: > tc-setup > /home/manfred/racket/share/pkgs/typed-racket-lib/typed-racket/typed-racket.rkt:25:4 > standard-module-name-resolver > > I have to admit it is not clear to me how I would specify a type for > exit-with-error-msg. > > Any idea? > > -- > Manfred > > > ____________________ > Racket Users list: > http://lists.racket-lang.org/users ____________________ Racket Users list: http://lists.racket-lang.org/users