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.