This design turned out to be extremely hard to reason. Our tests showed us that users were confused with the repetition of arguments and was leading them to false assumptions. Complex signatures were hard to use, introduced a fair amount of cognitive load and we saw a clear challenge in addressing horizontal real estate.
We decided to add two additional requirements and went back to the drawing board:
While this design worked very efficiently for certain functions, it was failing to provide a useful solution when we had to deal with alternative arguments. Because MATLAB code is computed only at runtime the program couldn’t identify variables’ data types and therefore could not filter the signatures accordingly.
To display the alternative arguments, we introduced the “|” character to separate possible alternatives.