Are signatures supported in non-teaching languages?

I wanted to create a files students could require and thought I'd include signatures in case some precocious students look at the file. Is there support for

(: name (input -> output))

in some module I can require? Using one of the teaching languages works, but then I can't provide the helper function.

You can add

(require racket)

to your file and then provide is available.

In general, you could create the following teachpack:

#lang racket 

(provide provide)

name it “provide.rkt” and have your students split programs into files. (That’s not really modular programming but it’s a small step.)

Thanks. I feel dumb.