Make.StmQSourceA priority queue.
Attempts to take a clause out of the queue. Guarded recursion: can't loop forever
Takes a clause out of the queue. Unguarded recursion, may loop forever
Attempts to take as many clauses from the queue as there are streams in the queue. Calls take_first to do so and stops if its guard is reached
Attempts to take as many clauses from the queue as there are streams in the queue. Extract as many clauses as possible from first stream before moving to a new stream to find more clauses if necessary
Creates a priority queue that uses weight to sort streams.