The empty preference empty() is a neutral element for the complex preference compositions {*, &, +}.
It holds that empty() * p and empty() & p is equal to p for all preferences p.
The function length(p) returns the term length of the preference term p
which is defined as the number of base preferences
in a complex preference term. The empty preference empty() has length 0,
and all base preferences have length 1.
With as.expression(p) for a preference p the call to the preference is constructed.
This means, eval(as.expression(p)) returns the preference p, evaluated in the current environment.
The function is.empty_pref returns TRUE if x is the empty preference object
empty() and FALSE otherwise.
With assoc.df the associated data frame of a preference can be retrieved or set.
Setting the associated data frame means that a partial evaluation based on this data frame is done.
See show.pref for details on partial evaluation of preferences.
Next, the preference is linked to that data frame, such that peval(p) can be used instead of psel(df, p).
It returns NULL if no data frame is associated.
Use set.assoc.df(NULL) to delete an associated data frame.