| add_to_heap/4 | Adds 
Value with priority Key to Heap0, constructing a new heap in Heap. | 
| delete_from_heap/4 | Deletes 
Value from Heap0, leaving its priority in Key and the resulting data 
structure in Heap. | 
| empty_heap/1 | True 
if Heap is an empty heap. | 
| get_from_heap/4 | Retrieves 
the minimum-priority pair Key-Value from Heap0. | 
| heap_size/2 | Determines 
the number of elements in Heap. | 
| heap_to_list/2 | Constructs 
a list List of Key-Value terms, ordered by (ascending) priority. | 
| is_heap/1 | Returns 
true if X is a heap. | 
| list_to_heap/2 | If 
List is a list of Key-Value terms, constructs a heap out of List. | 
| merge_heaps/3 | Merge 
the two heaps Heap0 and Heap1 in Heap. | 
| min_of_heap/3 | Unifies 
Value with the minimum-priority element of Heap and Key with its 
priority value. | 
| min_of_heap/5 | Gets 
the two minimum-priority elements from Heap. | 
| singleton_heap/3 | True 
if Heap is a heap with the single element Key-Value. |