anchor.diff:              use checking, only: check_allocate
   
               integer, intent(in) :: nslots, nentries, data_len, payload_len, max_free_reqd, seed
  +            integer, intent(in), optional, target :: data_label(:,:), payload(:,:)
               type(hash_table_t), intent(out) :: ht
   
               integer :: ierr
  
positive.code:             ! Deallocate hash table and set scalar attributes to 0.
  
              ! In/Out:
              !    ht: hash table.  On output all array attributes are deallocated
              !        and all scalar attributes are set to 0.
  
              use checking, only: check_deallocate
  
negative.code: 
  !--- Allocation/deallocation ---
  
          subroutine alloc_hash_table(nslots, nentries, data_len, payload_len, max_free_reqd, seed, ht, data_label, payload)
  
              ! Allocate hash table and initialise storage.
  
              ! In:
              !    nslots, nentries, data_len, payload_len, max_free_reqd, seed: see
              !        descriptions in hash_table_t.
              !    data_label (optional), payload (optional): external arrays to
              !        use for the data label and payload arrays (see descriptions
              !        in hash_table_t) rather than internal stores.
              ! Out:
              !    ht: hash table.  On output all array attributes are allocated
              !        and all scalar attributes are set to their corresponding
  