A flexible Haskell implementation of minimum, maximum, minimum-priority, maximum-priority and custom-ordered heaps.