def discard(self, val):
_maxes = self._maxes<EOL>if not _maxes:<EOL><INDENT>return<EOL><DEDENT>pos = bisect_left(_maxes, val)<EOL>if pos == len(_maxes):<EOL><INDENT>return<EOL><DEDENT>_lists = self._lists<EOL>idx = bisect_left(_lists[pos], val)<EOL>if _lists[pos][idx] == val:<EOL><INDENT>self._delete(pos, idx)<EOL><DEDENT>
Remove the first occurrence of *val*.

If *val* is not a member, does nothing.