anchor.diff:          type(reference_t), intent(inout) :: reference
           logical, intent(in) :: restart
           integer, intent(out) :: ref_det
  +        type(walker_t), intent(out) :: psip_list
   
           integer, allocatable :: sym_space_size(:)
           integer :: ndets
  
positive.code: 
          use energy_evaluation, only: update_shift
          use parallel, only: parent, iproc
          use qmc_data, only: qmc_in_t, restart_in_t, reference_t, walker_global
          use system, only: sys_t
          use utils, only: rng_init_info
          use restart_hdf5, only: dump_restart_hdf5, restart_info_global
  
negative.code: 
      end subroutine simple_death
  
      subroutine simple_annihilation(spawn, pop)
  
          ! Annihilation: merge main and spawned lists.
  
          ! This is especially easy as we store the populations for all
          ! determinants for both the main and spawned lists so it just amounts to
          ! adding the two arrays together,
  
          ! In:
          !    spawn: spawn_t object containing the spawned particles.
          ! In/Out:
          !    pop: main population on each site before (input) and after (output)
          !         annihilation.
   
          type(spawn_t), intent(in)  :: spawn
          integer(int_p), intent(inout) :: pop(:,:)
  
          pop = pop + int(spawn%sdata, int_p)
  
      end subroutine simple_annihilation
  
  