public override string signature()
{
if (m_sig == null)
{
StringBuilder s = new StringBuilder();
s.Append('|');
for (int i=0; i<m_params.Length; ++i)
{
if (i > 0) s.Append(',');
s.Append(m_params[i].signature());
}
s.Append('-').Append('>');
s.Append(m_ret.signature());
s.Append('|');
m_sig = s.ToString();
}
return m_sig;
}