Most SWI-Prolog predicates that require text at some argument accept all string representations (atom, string, list of characters/codes). The predicate name is either historical or ISO dictated. If the argument acts as an output, text is represented using the indicated type.