I\'m looking for real world best practices, how other people might have implemented solutions with complex domains.
The list uses this interface alot, so you can say a.Substract(b) or other of these nice functions.
Just remember: If you're objects don't return the same Hashcode, the Equals is not called.