code: def register_laser_hooks(self, hook_type: str, hook: Callable):
          
          if hook_type == "add_world_state":
              self._add_world_state_hooks.append(hook)
          elif hook_type == "execute_state":
              self._execute_state_hooks.append(hook)
          elif hook_type == "start_sym_exec":
              self._start_sym_exec_hooks.append(hook)
          elif hook_type == "stop_sym_exec":
              self._stop_sym_exec_hooks.append(hook)
          elif hook_type == "start_sym_trans":
              self._start_sym_trans_hooks.append(hook)
          elif hook_type == "stop_sym_trans":
              self._stop_sym_trans_hooks.append(hook)
          else:
              raise ValueError(
                  "Invalid hook type %s. Must be one of {add_world_state}", hook_type
              )
docs: registers the hook with this Laser VM