@Alejandro, I'm super-happy to see this being worked on! I am still in the process of learning about the implementation issues you're facing, so I'm afraid this posting may only seem marginally on-topic…
Is there some reason parameterized constraints are being limited to extensions? It seems to me that one should be able to create the same kinds of constraints on declarations as well, e.g.:
struct X<D> where<K, V> D == Dictionary<K, V> { … }
While I'm all for making incremental progress, I'm a little concerned about creating inconsistencies in the generics system, and also that we might be making choices that don't generalize well to the whole scope of parameterized constraints.