diff --git a/hugr-py/src/hugr/tys.py b/hugr-py/src/hugr/tys.py index 58b3fe337..a17020801 100644 --- a/hugr-py/src/hugr/tys.py +++ b/hugr-py/src/hugr/tys.py @@ -258,6 +258,10 @@ def __repr__(self) -> str: def type_bound(self) -> TypeBound: return TypeBound.join(*(t.type_bound() for r in self.variant_rows for t in r)) + def resolve(self, registry: ext.ExtensionRegistry) -> Sum: + """Resolve types in the sum type using the given registry.""" + return Sum([[ty.resolve(registry) for ty in row] for row in self.variant_rows]) + @dataclass() class UnitSum(Sum): @@ -279,6 +283,9 @@ def __repr__(self) -> str: return "Unit" return f"UnitSum({self.size})" + def resolve(self, registry: ext.ExtensionRegistry) -> UnitSum: + return self + @dataclass() class Tuple(Sum):