Either#

class hugr.tys.Either(left: Iterable[Type], right: Iterable[Type])[source]#

Bases: Sum

Two-variant tuple of elements.

Instances of this type correspond to Sum with a Left and a Right variant.

In fallible contexts, the Right variant is used to represent success, and the Left variant is used to represent failure.

Methods

as_tuple

resolve

Resolve types in the sum type using the given registry.

type_arg

The TypeTypeArg for this type.

type_bound

The bound of this type.

Attributes

variant_rows

resolve(registry: ext.ExtensionRegistry) Sum#

Resolve types in the sum type using the given registry.

type_arg() TypeTypeArg#

The TypeTypeArg for this type.

Example

>>> Qubit.type_arg()
TypeTypeArg(ty=Qubit)
type_bound() TypeBound#

The bound of this type.

Example

>>> Tuple(Bool, Bool).type_bound()
<TypeBound.Copyable: 'C'>
>>> Tuple(Qubit, Bool).type_bound()
<TypeBound.Any: 'A'>