This is a C++ wrapper around the ATerm library.
namespace genspect {
class aterm;
class aterm_appl;
class aterm_blob;
class aterm_int;
class aterm_list;
class aterm_list_iterator;
class aterm_place_holder;
class aterm_real;
class dictionary;
class function_symbol;
class indexed_set;
class table;
bool operator==(const function_symbol &, const function_symbol &);
bool operator!=(const function_symbol &, const function_symbol &);
bool operator!(const aterm & x);
bool operator==(const aterm &, const aterm &);
bool operator!=(const aterm &, const aterm &);
std::ostream & operator<<(std::ostream & out, const aterm & t);
aterm_list push_front(aterm_list, aterm);
aterm_list pop_front(aterm_list);
aterm_list get_next(aterm_list);
aterm_list tail(aterm_list, int);
aterm_list replace_tail(aterm_list, aterm_list, int);
aterm_list prefix(aterm_list);
aterm get_last(aterm_list);
aterm_list slice(aterm_list, int, int);
aterm_list insert(aterm_list, aterm);
aterm_list insert_at(aterm_list, aterm, int);
aterm_list append(aterm_list, aterm);
aterm_list concat(aterm_list, aterm_list);
int index_of(aterm_list, aterm, int);
int last_index_of(aterm_list, aterm, int);
aterm element_at(aterm_list, int);
aterm_list remove_element(aterm_list, aterm);
aterm_list remove_all(aterm_list, aterm);
aterm_list remove_element_at(aterm_list, int);
aterm_list replace(aterm_list, aterm, int);
aterm_list reverse(aterm_list);
aterm read_from_string(const std::string &);
aterm read_from_binary_string(const std::string &, unsigned int);
aterm read_from_shared_string(const std::string &, unsigned int);
aterm read_from_named_file(const std::string &);
bool write_to_named_text_file(aterm, const std::string &);
bool write_to_named_binary_file(aterm, const std::string &);
aterm set_annotation(aterm, aterm, aterm);
aterm get_annotation(aterm, aterm);
aterm remove_annotation(aterm, aterm);
void init(int, char *, aterm &);
aterm_appl set_appl_argument(aterm_appl, unsigned int, aterm);
}