Lil doesn't have a per se list literal syntax. Your example is one straightforward way of making nested lists:
(list 0,1),(list 2,3)
Another fairly general way of declaring static data is to use "parse" on a string of JSON/LOVE:
"%J" parse "[[1,2,3],[4,5],[6,7,8,9]]" # ((1,2,3),(4,5),(6,7,8,9))
Within Decker it's often a good idea to store lengthy static data in a Field widget (where it can be encoded/decoded to/from LOVE via the .data attribute), or as a table stored in a Grid widget, where it can be viewed and directly manipulated. Modules (Lil libraries for Decker) don't have direct access to a deck, so they have a dedicated mechanism called a KeyStore.
If the sublists are of equal size, you could turn a flat list into a nested one using a primitive like "window":
2 window range 6 # ((0,1),(2,3),(4,5))
You could also construct a nested list piecemeal by index in a named variable:
a[0]:1,2,3 a[1]:4,5 a # ((1,2,3),(4,5))
This last approach is particularly handy for nested dictionaries; see the code examples in the reference manual entry for the Array Interface.
Does any of that help?