The contract for drscheme:eval:expand-program specifies that it accepts an 'iter' argument fulfilling this contract:

(-> (or/c eof-object? syntax? (cons/c string? any/c))
    (-> any)
    any)

I'm wondering why the (cons/c string? any/c) is in there. The documentation states:

The first argument to iter is the expanded program (represented as syntax) or eof. The iter argument is called for each expression in the expanded program and once more with eof, unless an error is raised during expansion. It is called from the user’s thread. If an exception is raised during expansion of the user’s program, iter is not called. Consider setting the exception-handler during init to handle this situation.

... so, under what circumstances does expand-program call iter with (cons/c string? any/c) ?


John

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_________________________________________________
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev

Reply via email to