Thanks for all the responses in this vivid discussion. I've started to read Nim in Action in which procedure overloading on p. 67 is defined as follows:
> Procedure overloading is the ability to define different implementations of > procedures with the same name. Each of these procedures shares the same name > but accept different parameters. Depending on the arguments passed to the > procedure, the appropriate implementation is picked by the compiler. In my interpretation fac(0) satisfies this definition but I get your point @bpr.
