But you may workaround this by having separate iterators for types:
    
    
    # continuing the previous example
    method mi(v: A) {.base.} =
      for i in v: echo "mi A, " & i # ``iterator items(v: A)`` is called
    method mi(v: B) =
      for i in v: echo "mi B, " & i # ``iterator items(v: B)`` is called
    
    mi b # => mi B, iB
    var a = A()
    mi a # => mi A, iA
    
    
    Run

Reply via email to