Heap.Sval empty : tThe empty heap
add x h returns a new heap containing the elements of h, plus x; complexity  $ O(log(n)) $ 
maximum h returns the maximum element of h; raises EmptyHeap when h is empty; complexity  $ O(1) $ 
remove h returns a new heap containing the elements of h, except the maximum of h; raises EmptyHeap when h is empty; complexity  $ O(log(n)) $ 
usual iterators and combinators; elements are presented in arbitrary order