code: func (heap *FloatingFibonacciHeap) DecreaseKey(node *Entry, newPriority float64) (*Entry, error) {
  
  	if heap.IsEmpty() {
  		return nil, EmptyHeapError("Cannot decrease key in an empty heap")
  	}
  
  	if node == nil {
  		return nil, NilError("Cannot decrease key: given node is nil")
  	}
  
  	if newPriority >= node.Priority {
  		return nil, fmt.Errorf("The given new priority: %v, is larger than or equal to the old: %v",
  			newPriority, node.Priority)
  	}
  
  	decreaseKeyUnchecked(heap, node, newPriority)
  	return node, nil
  }
docs: // DecreaseKey decreases the key of the given element, sets it to the new
  // given priority and returns the node if successfully set