def add(self, hash_dict, nonhash_dict):
        """
        Args:
            hash_dict: {obs_hash: [ .. can be nested .. ]}
            nonhash_dict: {reward: -1.2, done: True, ...}
        """
        U.assert_type(hash_dict, dict)
        U.assert_type(nonhash_dict, dict)
        exp = {}
        for key, values in hash_dict.items():
            assert not key.endswith('_hash'), 'do not manually append `_hash`'
            exp[key + '_hash'] = self._hash_nested(values)
        exp.update(nonhash_dict)
        self.exp_list.append(exp)

        Args:
            hash_dict: {obs_hash: [ .. can be nested .. ]}
            nonhash_dict: {reward: -1.2, done: True, ...}
        
surreal/distributed/exp_sender.py