anchor.diff:  
   typedef 32 SIZE;
   
  -typedef Bit#(16) ValueType;
  -typedef Bit#(16) PriorityType;
  -
   typedef struct {
       valueType v;
       priorityType p;
   } Node#(type valueType, type priorityType) deriving(Bits, Eq);
   
  -instance DefaultValue#(Node#(ValueType, PriorityType));
  +instance DefaultValue#(Node#(Bit#(size_t), Bit#(size_t)));
       defaultValue = Node {
           v : 0,
           p : maxBound
  
positive.code:             let x <- toGet(create_bit_vector_fifo[i]).get;
              if (i == 0)
                  find_correct_location_fifo.enq(?);
              if (compareFunction(sorted_list[i], node_to_insert) > 0)
                  b_vector[i] <= 1;
              else
                  b_vector[i] <= 0;
  
negative.code:     rule get_correct_location_rule (insert_in_progress == 1);
          let x <- toGet(priority_encoder.bin).get;
          case (x) matches
              tagged Valid .index : insert_in_correct_location_fifo[index].enq(?);
          endcase
      endrule
  
  