I have read some papers that states, Segment Trees can be designed when you have three things: a set *S*, a binary operation that holds associativity and also an identity element that is, when we have an algebraic structure called Monoid.

But, then I found and amazing link, it's written in Russian and I bet there is gold over there, they generalize the idea, behind lazy propagation, the thing is that I'm not able to get the idea that they use, inserting a new operator instead of when using Lazy Propagation, and the fact it needs to hold the distributive property with the original operator .

Can you Russian-Speaker guys help me a little bit, on clarifying the following link a bit, or at least re-write the main ideas, so as we can improve our skills with Segment Trees?

Link: Russian Version

Link 2: Translated Version

Thanks in advance.