This is exactly the kind of thing I was looking for, thanks. In theory, this invoke could be inlined away. But even if it can't, I'm not too concerned about the performance issues. My module would not be loaded except by those who are specifically seeking to use it.
I think it would actually be helpful for cat( d::Integer, X::Number... ) in particular to be implemented in the Base package, just like the all-Number equivalents of hcat and vcat have. I might even offer up a pull request with this addition. But your suggestion will certainly help me resolve the other ambiguity issue. Thanks again! On Monday, August 4, 2014 3:40:09 PM UTC-5, Miles Lubin wrote: > > You could call the generic implementation by using invoke, e.g., > > function cat( d::Integer, X::Number... ) = invoke(cat,(Integer,Any...), d, > X...) > > I'm not sure what the performance implications of this are, but it would > be easy to check. >
