I see why you've done this (it's the simplest way to implement the average operation) but it has the unintended effect of undermining the static checks. Except for averaging, Pos+Pos makes no sense, so we made it a compile-time failure.

Can we expose an Average() operation which works across a sequence of PPos and doesn't need these operators?