This allows for using zkpcp.Add(p1, p2) in stead of p1.Add(p2, zkpcp) which looks weird.
Future improvement might be to include a pointer to zkpcp in ECPoint, given that a point can only exist on a certain curve - but given that ECPoints are transferred over the line when doing RPC, this would result in empty zkpcp references on deserialization and would need further optimizations / mitigations for that fact which don't seem to add value right now.
This allows for using
zkpcp.Add(p1, p2)
in stead ofp1.Add(p2, zkpcp)
which looks weird.Future improvement might be to include a pointer to zkpcp in ECPoint, given that a point can only exist on a certain curve - but given that ECPoints are transferred over the line when doing RPC, this would result in empty zkpcp references on deserialization and would need further optimizations / mitigations for that fact which don't seem to add value right now.