@Jake Bolewski Interesting... Staged functions seem to solve exactly this =) Guess, that puts me on the list of people, waiting for this!
So now, one just needs a nice way, to define groups of similar types. But probably its enough to just define a function like: `isvector(x::DataType)` @gentlebeldin Well it could be, but I was thinking of adding types like Vector3 + RGB. Which might make sense in some context, but the needed return type would be largely context dependent. In that case, promotion doesn't make that much sense. One might rather choose for example the type of the first parameter, making + non associative.