/// Returns an iterator over all arguments of the term that runs in pre order traversal of the term trees.
// const _: () = assert!(std::mem::size_of::<Option<ATermRef>>() == std::mem::size_of::<usize>());
/// This function is unsafe because it does not check if the index is valid for the given lifetime.
unsafe { std::mem::transmute::<SymbolRef<'b>, SymbolRef<'a>>(self.shared().symbol().copy()) }
pub fn try_with_iter<'a, 'b, 'c, 'd, I, T>(symbol: &'b impl Symb<'a, 'b>, iter: I) -> Result<ATerm, MercError>
/// Keeps track of an internal reference to the protection set it was protected from to ensure proper cleanup.
// Copy the information from the term, but forget it since we are taking over the `Drop` responsibility.