docs: def cross_context(contextss):
      """
      Cross product of all contexts
      [[a], [b], [c]] -> [[a] x [b] x [c]]
  
      """
      if not contextss:
          return []
  
      product = [{}]
  
      for contexts in contextss:
          tmp_product = []
          for c in contexts:
              for ce in product:
                  c_copy = c.copy()
                  c_copy.update(ce)
                  tmp_product.append(c_copy)
          product = tmp_product
      return product