Yes, this would be natural and we could support static values. However, there 
is a case, where `T` needs to be injected. Based on Andrea's example, imagine 
that you would like to have 
    
    
    type HasFloat = concept c
      c.gimme() is float
    type HasInt = concept c
      c.gimme() is int
    type HasString = concept c
      c.gimme() is string
    ...
    

It is a little bit long to write, we could use generics to make our code 
shorter: 
    
    
    type Has[T] = concept c
      g.gimme() is T
    

I believe that this example should work in examples where we now `T` (e.g., 
`proc f(x: HasType[float])`. In your example would `type T = ...` override any 
previously injected `T`? Do they have to be the same?

I cannot comment on const variables as generic parameters. I have seen 
examples, but never tried and I don't know how that is implemented in the 
compiler. Is there a demand for this? (Based on my limited knowledge, a 
possible workaround could be that you require `c.getMyType() is static[int]` in 
the Concept's body, so you can have that value in an extra round, but again, I 
never tried anything like that.)

Reply via email to