| heap  |  #  |  heap -> nat | 
| heap  |  +  |  heap ** heap -> heap | 
| heap  |  :=_left |  heap ** heap -> heap | 
| heap  |  :=_right |  heap ** heap -> heap | 
| heap  |  :=_val |  heap ** data -> heap | 
| heap  |  children |  heap -> seq[data] | 
| heap  |  depth |  heap -> nat | 
| heap  |  excl |  data ** heap -> heap | 
| heap  |  exist?  |  (data -> bool) ** heap -> bool | 
| heap  |  extractMin |  heap -> data ** heap | 
| heap  |  find?  |  (data -> bool) ** heap -> option[data] | 
| heap  |  forall?  |  (data -> bool) ** heap -> bool | 
| heap  |  front |  heap -> seq[data] | 
| heap  |  grandchildren |  heap -> seq[data] | 
| heap  |  in |  data ** heap -> bool | 
| heap  |  incl |  data ** heap -> heap | 
| heap  |  leaf?  |  heap -> bool | 
| heap  |  left |  heap -> heap | 
| heap  |  leftmost |  heap -> data | 
| heap  |  level |  nat ** heap -> seq[data] | 
| heap  |  min |  heap -> data | 
| heap  |  nil?  |  heap -> bool | 
| heap  |  node |  data ** heap ** heap -> heap | 
| heap  |  node?  |  heap -> bool | 
| heap  |  reflect |  heap -> heap | 
| heap  |  right |  heap -> heap | 
| heap  |  rightmost |  heap -> data | 
| heap  |  swap |  heap -> heap | 
| heap  |  val |  heap -> data | 
| heap  |  width |  heap -> nat | 
| heap  |  {<}  |  heap ** heap -> bool | 
| heap[data, <]  |  !  |  heap[data, <] ** nat -> data | 
| heap[data, <]  |  !  |  heap[data, <] ** nat -> heap[data, <] | 
| heap[data, <]  |  !?  |  heap[data, <] ** nat -> option[data] | 
| heap[data, <]  |  !?  |  heap[data, <] ** nat -> option[heap[data, <]] | 
| heap[data, <]  |  asSeqBreadth |  heap[data, <] -> seq[seq[data]] | 
| heap[data, <]  |  asSeqIn |  heap[data, <] -> seq[data] | 
| heap[data, <]  |  asSeqPost |  heap[data, <] -> seq[data] | 
| heap[data, <]  |  asSeqPre |  heap[data, <] -> seq[data] | 
| heap[data, <]  |  asTree |  heap[data, <] -> tree[data] | 
| heap[data, <]  |  delete |  heap[data, <] ** nat -> heap[data, <] | 
| heap[data, <]  |  drop |  (data -> bool) ** heap[data, <] -> heap[data, <] | 
| heap[data, <]  |  dropall |  (data -> bool) ** heap[data, <] -> heap[data, <] | 
| heap[data, <]  |  insert |  heap[data, <] ** nat ** heap[data, <] -> heap[data, <] | 
| heap[data, <]  |  repl |  heap[data, <] ** nat ** (heap[data, <] -> heap[data, <]) -> heap[data, <] | 
| heap[data, <]  |  repl |  heap[data, <] ** nat ** heap[data, <] -> heap[data, <] | 
| heap[data, <]  |  step |  heap[data, <] ** nat -> heap[data, <] ** nat | 
| heap[data, <]  |  take |  (data -> bool) ** heap[data, <] -> heap[data, <] | 
| heap[data, <]  |  upd |  nat ** (data -> data) ** heap[data, <] -> heap[data, <] | 
| heap[data, <]  |  upd |  nat ** data ** heap[data, <] -> heap[data, <] | 
| heap[data1, <]  |  ~  |  heap[data1, <] ** heap[data2, <] -> bool | 
| heap[data2, <]  |  ~  |  heap[data1, <] ** heap[data2, <] -> bool | 
| heap[from, <]  |  *  |  (from -> to) ** heap[from, <] -> heap[to, <] | 
| heap[from, <]  |  *_^  |  (env ** env ** from -> env ** to) ** env ** heap[from, <] -> env ** heap[to, <] | 
| heap[from, <]  |  *_in |  (env ** from -> env ** to) ** env ** heap[from, <] -> env ** heap[to, <] | 
| heap[from, <]  |  *_post |  (env ** from -> env ** to) ** env ** heap[from, <] -> env ** heap[to, <] | 
| heap[from, <]  |  *_pre |  (env ** from -> env ** to) ** env ** heap[from, <] -> env ** heap[to, <] | 
| heap[from, <]  |  *_V |  (env ** from -> env ** env ** to) ** env ** heap[from, <] -> heap[to, <] | 
| heap[from, <]  |  /  |  (from ** to ** to -> to) ** to ** heap[from, <] -> to | 
| heap[from, <]  |  /  |  (from ** to -> to) ** to ** heap[from, <] -> to | 
| heap[from, <]  |  /_in |  (from ** to -> to) ** to ** heap[from, <] -> to | 
| heap[from, <]  |  /_post |  (from ** to -> to) ** to ** heap[from, <] -> to | 
| heap[from, <]  |  /_pre |  (from ** to -> to) ** to ** heap[from, <] -> to | 
| heap[from1, <]  |  zip |  (from1 ** from2 -> to) ** heap[from1, <] ** heap[from2, <] -> heap[to, <] | 
| heap[from2, <]  |  zip |  (from1 ** from2 -> to) ** heap[from1, <] ** heap[from2, <] -> heap[to, <] | 
| heap[to, <]  |  unzip |  (to -> from1 ** from2) ** heap[to, <] -> heap[from1, <] ** heap[from2, <] |