During test of the preceding named references patch I noticed that the output of (for example) typeset -pam \* was not restricted to just array parameters. Other flags than -a produced even stranger results. It turns out that combining -p and -m with other flags would actually apply changes to the types of some parameters, e.g., converting things to/from arrays or adding integer or float attributes. This has been the case for a very long time (possibly since inception). Attached patch attempts to impose sanity on this. It should be applied after 51430 but I'll wait a bit to push it since the use case plainly isn't a common one.