Is a procedural type whose parameter list contains a generic type also a generic type? i.e. Can the following procedure take a proc(x: int) or proc(x: float) as callback, or does it take exactly a proc(x: int | float)?
proc f(g: proc(x: int | float)) =
discard
Is it equivalent to
proc f(g: proc(x: int) or proc(x: float)) =
discard
How about auto? Does the following accept any callback which takes one argument, given that the calling convention matches?
proc f(g: proc(x: auto)) =
discard