C# How to flexibly represent mixed intermediate scalar/vector results in DSL expression evaluator I want to evaluate expressions like: