For your last proposition, there is no way to disambiguate between a type 
restriction and a static:
    
    
    type Vector[T; N: int or uint] = object
    
    var v: Vector[int, uint]
    
    
    Run

is different from 
    
    
    type Vector[T; N: static[int or uint]] = object
    
    var v: Vector[int, 10]
    
    
    Run

(not sure it compiles but it's just to illustrate the need of static)

Reply via email to