code: def peek_step(self, val: ArrayValue,
                    sn: "DataNode") -> Tuple[ObjectValue, "DataNode"]:
          
          keys = self.parse_keys(sn)
          for en in val:
              flag = True
              try:
                  for k in keys:
                      if en[k] != keys[k]:
                          flag = False
                          break
              except KeyError:
                  continue
              if flag:
                  return (en, sn)
          return (None, sn)
docs: Return the entry addressed by the receiver + its schema node.
  
          Args:
              val: Current value (array).
              sn:  Current schema node.