def compose(self, other, qargs=None, front=False):
if qargs is not None:<EOL><INDENT>return Chi(<EOL>SuperOp(self).compose(other, qargs=qargs, front=front))<EOL><DEDENT>if not isinstance(other, Choi):<EOL><INDENT>other = Choi(other)<EOL><DEDENT>if front and self._input_dim != other._output_dim:<EOL><INDENT>raise QiskitError(<EOL>'<STR_LIT>')<EOL><DEDENT>if not front and self._output_dim != other._input_dim:<EOL><INDENT>raise QiskitError(<EOL>'<STR_LIT>')<EOL><DEDENT>return Chi(Choi(self).compose(other, front=front))<EOL>
Return the composition channel self∘other.

        Args:
            other (QuantumChannel): a quantum channel.
            qargs (list): a list of subsystem positions to compose other on.
            front (bool): If False compose in standard order other(self(input))
                          otherwise compose in reverse order self(other(input))
                          [default: False]

        Returns:
            Chi: The composition channel as a Chi object.

        Raises:
            QiskitError: if other is not a QuantumChannel subclass, or
            has incompatible dimensions.