nodes: 0, module; 1, function_definition; 2, function_name:in_sorted; 3, parameters; 4, block; 5, identifier:values; 6, identifier:value; 7, expression_statement; 8, expression_statement; 9, if_statement; 10, return_statement; 11, comment:"""Checks if a value is in a sorted list.
  
      Uses the :mod:`bisect` builtin to find the insertion point for
      ``value``.
  
      Args:
          values (List[int]): Integers sorted in ascending order.
          value (int): Value to check if contained in ``values``.
  
      Returns:
          bool: Indicating if the value is contained.
      """; 12, assignment; 13, comparison_operator:index >= len(values); 14, block; 15, comparison_operator:values[index] == value; 16, identifier:index; 17, call; 18, identifier:index; 19, call; 20, return_statement; 21, subscript; 22, identifier:value; 23, attribute; 24, argument_list; 25, identifier:len; 26, argument_list; 27, False; 28, identifier:values; 29, identifier:index; 30, identifier:bisect; 31, identifier:bisect_left; 32, identifier:values; 33, identifier:value; 34, identifier:values
code: def in_sorted(values, value):
      """Checks if a value is in a sorted list.
  
      Uses the :mod:`bisect` builtin to find the insertion point for
      ``value``.
  
      Args:
          values (List[int]): Integers sorted in ascending order.
          value (int): Value to check if contained in ``values``.
  
      Returns:
          bool: Indicating if the value is contained.
      """
      index = bisect.bisect_left(values, value)
      if index >= len(values):
          return False
  
      return values[index] == value