I have a list of lists in GAP, for example as follows: $L=[ [ 2, 2, 2, 2, 3 ], [ 2, 2, 2, 3, 3 ], [ 2, 2, 2, 4, 3 ], [ 2, 2, 3, 2, 3 ], [ 2, 2, 3, 3, 3 ], [ 2, 2, 3, 4, 3 ], [ 2, 2, 4, 3, 3 ], [ 2, 2, 4, 4, 3 ], [ 2, 2, 5, 4, 3 ], [ 2, 3, 2, 2, 3 ], [ 2, 3, 2, 3, 3 ], [ 2, 3, 2, 4, 3 ], [ 2, 3, 3, 2, 3 ], [ 2, 3, 3, 3, 3 ], [ 2, 3, 3, 4, 3 ], [ 2, 3, 4, 3, 3 ], [ 2, 3, 4, 4, 3 ], [ 2, 3, 5, 4, 3 ], [ 2, 4, 3, 2, 3 ], [ 2, 4, 3, 3, 3 ], [ 2, 4, 3, 4, 3 ], [ 2, 4, 4, 3, 3 ], [ 2, 4, 4, 4, 3 ], [ 2, 4, 5, 4, 3 ], [ 2, 5, 4, 3, 3 ], [ 2, 5, 4, 4, 3 ], [ 2, 5, 5, 4, 3 ], [ 2, 6, 5, 4, 3 ] ]$.
Question: Is there an easy command in GAP to obtain such a list up to cyclic shifts so that two elements of $L$ get identified in case they are cyclic shifts of each other?
So the input should be such a list L and the output a list $L'$ which contains all elements up to a cyclic shift.
For example, the two elements $[2,3,2,3,3]$ and $[2,3,3,2,3]$ should get identified because they are cyclic shifts of each other.
So in case we input $L=[[2,3,2,3,3],[2,3,3,2,3]]$ the output should be $[[2,3,2,3,3]]$. (It should give one representative of an equivalence class up to cyclic shift, it doesn't matter how this representative looks).
The task can be accomplished via user-defined GAP functions.
The following three functions will suffice . . .
Here's an implementation . . .