/// 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, S, I, T>(symbol: &'b S, iter: I) -> Result<ATerm, MercError>
pub fn with_iter_head<'a, 'b, 'c, 'd, 'e, 'f, I, S, T, H>(symbol: &'b S, head: &'d H, iter: I) -> ATerm
/// 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.