Reconciling dynamic multimethod dispatch, parametric types and static compilation

This is a spin-off from Roadmap for small binaries - #99 by thautwarm. My impression is that no language has managed to crack all three of these things, but it would be great if those who understand this design space better could weigh in! It’s clear enough that Dylan doesn’t have parametric types. What I’m less clear on is how amenable a language like Cecil which does is to static analysis—searching citations turned up this paper from @ckfinite but no other leads. There’s also CLOS, which has a rather confusing “compilation” model that I haven’t wrapped my head around and may or may not support parametric types?