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