> However, going with that, the supplementary question is, how do 
> I then
> discover if bar[0] is a symbol or not? I can't see any traits 
> to test for
> builtin types...
You could use the fact that alias parameters can not be builtin 
types, like this:
template TestSymbol(alias a){}
  __traits(compiles, TestSymbol!(bar[0]))