diff --git a/pymbolic/cse.py b/pymbolic/cse.py index bb715816be98b8f71c828462a0196c3d63959a09..b7c6109088db2e81f523a2f8f87467211cace539 100644 --- a/pymbolic/cse.py +++ b/pymbolic/cse.py @@ -26,7 +26,11 @@ class NormalizedKeyGetter(object): def __call__(self, expr): expr = self.remove_cses(expr) if isinstance(expr, COMMUTATIVE_CLASSES): - return type(expr), frozenset(expr.children) + kid_count = {} + for child in expr.children: + kid_count[child] = kid_count.get(child, 0) + 1 + + return type(expr), frozenset(kid_count.iteritems()) else: return expr