code: func (list *SkipList) SetMaxLevel(level int) (old int) {
  	if level <= 0 {
  		panic("invalid argument to SetLevel")
  	}
  
  	old, list.level = list.level, level
  
  	if old == level {
  		return
  	}
  
  	if old > level {
  		list.next = list.next[:level]
  		list.prevNodesCache = list.prevNodesCache[:level]
  		return
  	}
  
  	next := make([]*Element, level)
  	copy(next, list.next)
  	list.next = next
  	list.prevNodesCache = make([]*elementNode, level)
  
  	return
  }
docs: // Changes skip list max level.
  // If level is not greater than 0, just panic.