Ok, ok, I get it (I wish I knew what a default type implementation was...).

So I'm still working on injecting `T` somehow before the body such that 
    
    
    type Container[T] = concept c
      T = ...
    

works. If `T` is `typedesc`, then I don't know its type at compile time (or I 
can add that information to the type, which is a hack). If `T` is `skType`, 
then it cannot be overwritten (which can be hacked). If `T` is generics like in 
the function calls, then we don't have a `Candidate` to store `bindings` (which 
can be hacked). I'm still trying to understand `c.generics`, so I'm not sure 
whether that could help. Or I can introduce a new `skTypeWhichCanBeWrittenOnce` 
enum, which looks even worse than the just mentioned bad solutions. And I'm 
searching for a solution which works well with `is`, for example `get(c, 0) is 
T`, but this part can be hacked as well probably.

Reading the compiler's code there are so many exceptions, it would be great not 
to increase the complexity. I'm keep trying.

By the way, by looking the compiler, I'm starting to understand what `typedesc` 
is. I'll extend the manual.

> Peter

Reply via email to