I am trying to make a contract for data that looks like this:
'(a (b c) (d e) ...) ; a, b, c, d, e are all symbols
which is basically a list consisting of a symbol followed by an arbitrary number of lists of two symbols.
There is list/c
but that only lets me make it with a fixed number of elements.
There is also *list/c
which takes arbitrary initial values, followed by final fixed values, which is kind of the opposite of what I need.
How do I make a correct contract for my data structure?