com.twitter.algebird
This is a faster way to combine two Windows if you have a group
Build a monoid from either a group or a monoid
This is the more efficient way to build a window