Hi,
the following is from the GF book:
C.4.3 List categories
Since categories of lists of elements of another category are a common idiom, the following syntactic sugar is available:
cat [C] {n}
abbreviates a set of three judgements:
cat ListC ;
fun BaseC : C -> … -> C -> ListC ; --n C’s
fun ConsC : C -> ListC -> ListC
The functions BaseC and ConsC are automatically generated in the abstract syntax, but their linearizations, as well as the linearization type of ListC,
must be defined manually. The type expression [C] is in all contexts interchangeable with ListC.
The purpose of lists in GF is mostly to generalise coordination, e.g. “I saw John, Mary, Alice, Bob and Charlie”, so you don’t need a different syntactic function for 2, 3, 4, 5 etc. objects, but just one for an NP object, which you can build out of a ListNP. The RGL has functions ConjC : Conj -> ListC -> C for all categories that have a ListC. For instance, here you can see the tree for “John and I walk”:
PredVP (ConjNP and_Conj (BaseNP (UsePN john_PN) (UsePron i_Pron))) (UseV walk_V)
Hope this helps; if you have more questions, just ask!
Cheers,
Inari