No, only overloaded symbols are defaulted to open(mixin), non overloaded are 
bound to the symbol. This can be seen with a simple macro:
    
    
    import std/macros
    
    proc printSymChoice(impl: NimNode) =
      for n in impl:
        case n.kind
        of nnkOpenSymChoice:
          hint("Opened: " & $n[0], n)
        of nnkClosedSymChoice:
          hint("Closed: " & $n[0], n)
        else:
          printSymChoice(n)
    
    
    macro printSymChoices(t: typed): untyped =
      printSymChoice(t.getImpl())
    
    proc myProc(i: auto) = discard
    
    proc doThing[T](a: T) =
      myProc(a)
    
    printSymChoices(doThing)
    
    proc doX(a: int) = discard
    proc doX(a: float) = discard
    
    proc myProc(f: float) = discard
    
    proc doOtherThing[T](a: T) =
      bind doX
      myProc(a)
      doX(a)
    
    printSymChoices(doOtherThing)
      
    
    Run

Reply via email to