A Prolog term, as arg2p gives it (a statement, the binding of a variable, ...) and takes it: an Atom, an Integer, a Real, a Variable, a List or a compound term (Struct). A value is written as arg2p writes it, with its operators (-a, r1 : [a] => b); parse reads it back.