I've asked about this on comp.lang.scheme, but I'd also like to see if there are Ikarus-specific solutions.
Is it possible to write a macro-friendly type-checker that signals errors, if any, during expansion and disappears afterwards? Typed Scheme does this, but requires PLT's local-expand to expand all other macros before type checking. I don't think Ikarus has anything public like local-expand, right? Is it possible to write lazy-lambda that creates a procedure for which application is call-by-need? I know you could write a lazy-define to create procedures that were actually macros that wrapped arguments in thunks, but what about anonymous or first-class procedures? I think this would require taking over the application syntax "(rator rand ....)", which I think is possible with PLT's app macros; I'm not sure how the solution should look.
