factor out suggest_typename
added X::Parameter::InvalidType with suggestions.