[racket] Why implement modules as signatures and units, if there's only 1 unit?

From: Greg Hendershott (greghendershott at gmail.com)
Date: Wed Jun 1 15:34:49 EDT 2011

Something I've been meaning to ask for awhile.

In e.g. `net' I notice many modules done as 3 files. For instance:

pop3-sig.rkt
pop3-unit.rkt
pop3.rkt

Similar trios for base64, cgi, cookie, dns, ftp, head, imap, mime,
nntp, qp, sendmail, smtp, uri-codec, url.

Why?

I thought the motivation for a signature (interface) is to let you
runtime select among 2 or more units (implementations).

But all of these have only the one unit. In which case, seems it would
be simpler to do these as plain modules, in 1 file each?


Posted on the users mailing list.