The argument section describes the type/domain of each argument of a solution to the given predicate. That is, for a predicate to succeed, it must be possible to instantiate the given argument to a term of the described type/domain.
If it is a `+' argument, the predicate always tests if the argument is of the right type/domain. Usually, input arguments must also be instantiated to some extent. Such details are documented for each input argument.
Many built-in and library predicates take an +Options argument, which must be given as a proper list of terms specifying what the predicate should do, typically as the last argument. As a general rule for such option lists, if the same option occurs more than once, the last occurrence overrides previous ones.