opt is used to indicate that a set of features is optional. The syntax is
((att1 val1)
...
(OPT fd)
...
(attn valn))
|
Its meaning is: if the unification of the whole FD succeeds with fd, it is returned as the result. If it fails, the unifer tries again without fd. Since the FD nil can be unified successfully with any other FD, opt is a more readable equivalent to the form:
(ALT (fd nil))
|