public override string ToString()
{
return
Name.ToString()
+ (TypeArguments.Count > 0 ? "`" + String.Join(", ", from ta in TypeArguments select ta.ToString()) + "`" : "")
+ (Argument != null ? "->" + Argument : "")
+ (Arguments != null ? "(" + String.Join(", ", from a in Arguments select a.ToString()) + ")" : "");
}