F# priority queue implementation (just for fun)