[plt-dev] Hunting down an elusive certification bug

From: Dimitris Vyzovitis (vyzo at media.mit.edu)
Date: Sat Feb 28 15:15:51 EST 2009

I have been bothered by a weird certification bug, triggered by a complex
sequence of expansions.

The error message is baffling:
compile: reference is more certified than binding in: cid

Here is a high-level description of the expansion:

There is a metadata descriptor identifier, that points to to certified
identifiers (timeout? and timeout.v in the trace below).
This identifier is used inside a macro, that eventually expands to a
rename-transformer.
This macro is used to splice-expand inside a match.

The effective expansion is:
(match ...
   ((? timeout? (app timeout.v cid))
    ... cid ...))

where cid was original syntax.

Any ideas?

-- vyzo


Posted on the dev mailing list.