I wrote a blog post on generalizing segment trees: https://sharmaeklavya2.github.io/blog/generalizing-segment-trees.html
It's about a method of generalizing segment trees by expressing query outputs as monoids and update functions as composable endomorphisms. The blog post explains what these terms mean, why they are suitable abstractions and demonstrates concepts with examples.
Can I please get comments/reviews/opinions on it? Do you think it is (or can be slightly altered to make it) useful for others?
It turned out to be more detailed and theoretical than I was expecting. It's also more concerned with mathematical and algorithmic aspects than the practicality of using it in contests. But I can change that if you think that would make it better.