self.symbol == other.symbol && self.annotation() == other.annotation() && self.arguments() == other.arguments()
/// This is used to store the annotation as argument of a term without consuming additional memory for terms that have no annotation.
Layout::array::<ATermRef<'static>>(object.arguments.len()).expect("Layout should not exceed isize");
self.symbol == other.symbol && self.arguments == other.arguments() && self.annotation == other.annotation()
// "A SharedTerm with arity two should be the same size as the Symbol and two ATermRef arguments"