// Likewise, we not only give an ordered monoid a way to compare its summaries (combineSummaries), we also include a function (summarizePosition) to convert
// Likewise, we not only give an ordered monoid a way to compare its summaries (compareSummaries), we also include a function (summarizePosition) to convert
// from a position type to the summary type. That way, leafy trees can have one type for positions and a different type for summaries. (Yet again, if
// from a position type to the summary type. That way, leafy trees can have one type for positions and a different type for summaries. (Yet again, if
// different types are not required, then summarizePosition can just be set to the identity function.)
// different types are not required, then summarizePosition can just be set to the identity function.)