> If I understand you correctly, you wanted the client/user of the module to > provide their own initElement proc of their type, didn't you?
Yes > In that case, you're able to ensure the compiler to check whether the user > provide their own initElement using compile proc. The problem is not so much with telling the client to define `initElement` in his code. But for the compiler to link all definitions of that proc that are spread between the generic module and the client module, with overloading. I've tried to [reproduce the problem in the playground](https://play.nim-lang.org/#ix=277G). I have to provide an `initElement` proc in the generic module in order to compile `foo[T]` (line #10). That's the reason there's a forward declaration of `initElement` (line #7). The problem occurs when the client defines `initElement` in his code (line #30). The compiler complains that `Error: overloaded 'initElement' leads to ambiguous calls` when the client wants to call the `foo` proc from the generic module (line #37).
