This module contains the definition of a Type Class that represents a Heap. In the context of QIO, a Heap is the type used to represent a classical basis state. An instance of a Heap is also defined, that makes use of a Map.
The Heap Type Class
initial (i.e. empty) Heap
update the value of a Qubit within the Heap to the given Boolen value
Lookup the value of the given Qubit in the Heap (if it exists)
remove the given Qubit from the Heap
Swap the values associated with two Qubits within the Heap