Hi Andy, This all sounds great! :)
I have only one comment for now, which regards arity information. The
required/optional/rest representation is not sufficiently general. Not
only is it unable to handle empty case-lambdas, but it's also unable to
properly represent a case-lambda that can accept 1 or 3 arguments, but
not 2.
One possibility would for each procedure to have a (possibly empty) list
of supported arities, where each arity corresponds to a case-lambda
clause.
What do you think?
Mark
