James Bielman wrote:
I've done yet-another rewrite of the type translator interface. It does everything through generic functions at run-time, which allows us to specialize on both the Lisp object being converted, and the foreign type we are converting to.
How does this interact with compiler macros and the wish for partial evaluation at compile-time? This remembers me of the AMOP book which carefully distinguishes things possibly known at compile or macro-expansion time from the non-optimizable run-time path. It's design seems at odd which your approach of mixing both: the AMOP is very careful to separate the possibly known paths (depending on the type) from the unknown (depending on the value) and as a result, separates functions that operate on types only.
Regards, Jorg Hohle.