Oh, btw, I have found another area where partial-casing is restrictive:
bar.nim:
import typetraits
proc bar*[X]() =
echo "bar:" & type(X).name
foo.nim:
import bar as nil
when isMainModule:
bar.bar[int32]()
Leads to:
foo.nim(4, 10) Error: could not resolve: bar[int32]
If I change the proc name to `Bar*` but still call it as `bar.bar[int32]()`,
then I get this:
foo.nim(4, 6) Error: expression 'bar' has no type (or is ambiguous)
But it works fine if I change the proc-name to `Bar*` _and_ I call it as
`bar.Bar[int32]()`. You could call this a language bug (or a feature), but I
say it's evidence that this whole partial-casing idea was not considered
clearly.