public override bool Equals(Object o) { if (o == null || !(o is ProceduralType)) { return(false); } ProceduralType ft = (ProceduralType)o; return(funcret.Equals(ft.funcret) && Directives.Equals(ft.Directives) && @params.Equals(ft.@params)); }