##### Predicates Related to Sets

The following predicates are relevant to sets, but are not in `library(sets)`:

`length(`-List`, `+Integer`)`
built-in predicate: do not use this if Set might contain duplicates. See ref-all for more information.
`append(`+*List1`, `+*List2`, `+*List3`)`
built-in predicate: only use `append/3` this way when Set1 and Set2 are known to be disjoint, and put a comment in your code explaining the hack.
`member(`?Elem`, `?Set`)`
in `library(basics)` (lib-lis-basics-member)
`memberchk(`?Elem`, `?Set`)`
in `library(basics)` (lib-lis-basics-memberchk)
`subseq0(`+Set`, `?SubSet`)`
in `library(lists)` (lib-lis-lists): you can only use `subseq0/2` to generate subsets of a given Set, not to test whether a given SubSet is a subset of a given Set, because `subseq0/2` preserves the order of the elements, which is irrelevant to sets. However, you can use it to generate subsets of an ordered set, as the order of the elements does matter there.
`subseq1(`+Set`, `?ProperSubSet`)`
in `library(lists)` (lib-lis-lists): you can only use `subseq1/2` to generate proper subsets of a given Set, not to test whether a given SubSet is a proper subset of a given Set, because `subseq1/2` preserves the order of the elements, which is irrelevant to sets. However, you can use it to generate proper subsets of an ordered set, as the order of the elements does matter there.