docs: def explicit(fixed_qubits: Iterable[raw_types.Qid],
                   fallback: Optional['QubitOrder']=None) -> 'QubitOrder':
          """A basis that contains exactly the given qubits in the given order.
  
          Args:
              fixed_qubits: The qubits in basis order.
              fallback: A fallback order to use for extra qubits not in the
                  fixed_qubits list. Extra qubits will always come after the
                  fixed_qubits, but will be ordered based on the fallback. If no
                  fallback is specified, a ValueError is raised when extra qubits
                  are specified.
  
          Returns:
              A Basis instance that forces the given qubits in the given order.
          """
          result = tuple(fixed_qubits)
          if len(set(result)) < len(result):
              raise ValueError(
                  'Qubits appear in fixed_order twice: {}.'.format(result))
  
          def func(qubits):
              remaining = set(qubits) - set(fixed_qubits)
              if not remaining:
                  return result
              if not fallback:
                  raise ValueError(
                      'Unexpected extra qubits: {}.'.format(remaining))
              return result + fallback.order_for(remaining)
  
          return QubitOrder(func)