internal Field parameterize(Field f)
{
// if not generic, short circuit and reuse original
Type of = f.type();
if (!of.isGenericParameter()) return f;
// create new parameterized version
of = parameterize(of);
Field pf = new Field(this, f.m_name, f.m_flags, f.m_facets, f.m_lineNum, of);
pf.m_reflect = f.m_reflect;
return pf;
}