public override bool Equals(object obj)
{
if (obj is FuncType)
{
FuncType x = (FuncType)obj;
if (m_params.Length != x.m_params.Length) return false;
for (int i=0; i<m_params.Length; ++i)
if (!m_params[i].Equals(x.m_params[i])) return false;
return m_ret.Equals(x.m_ret);
}
return false;
}