anchor.diff:          !     all_spin_sectors = true/false,
           !     beta_loops = Nb,
           !     sampling_weights = { ... },
  +        !     vary_weights = N,
           !     find_weights = true/false,
           !     symmetrize = true/false,
           ! }
  
positive.code:                 ! Certainly can't have more excitation levels than basis functions, so that's a handy upper-limit.
                  call aot_get_val(dmqmc_in%sampling_probs, err_arr, nbasis, lua_state, table, 'sampling_weights')
              end if
              call warn_unused_args(lua_state, dmqmc_keys, table)
              call aot_table_close(lua_state, table)
          end if
  
negative.code:         integer, allocatable :: err_arr(:)
          logical :: op
  
          character(30), parameter :: dmqmc_keys(9) = [character(30) :: 'replica_tricks', 'fermi_temperature', 'all_sym_sectors', &
                                                                        'all_spin_sectors', 'beta_loops', 'sampling_weights',     &
                                                                        'find_weights', 'symmetrize', 'vary_weights']
          character(30), parameter :: ip_keys(5)    = [character(30) :: 'initial_beta', 'free_electron_partition',                &
                                                                        'grand_canonical_initialisation', 'metropolis_attempts',  &
                                                                        'max_metropolis_moves']
  