Because procedures are not associated with "class" objects. You can have
    
    
    type
      T0 = object
      T1 = object
      T = object
      O = object
    converter toT(this:any):T = discard
    proc p(this:T0):O = discard
    proc p(this:T0, that:T1):O = discard
    proc p(that:T1, this:T0):O = discard
    proc p(this:T0, that:T1, rest:varargs[T, toT]):O = discard
    
    
    Run

Reply via email to