turns out I don't need the 'a ~ a' constraint

The functional dependency on the StreamSummary class does the trick.