Did you know ... Search Documentation:
Predicate transpose/2
 transpose(+Matrix, ?Transpose)
Transpose a list of lists of the same length.

Its implementation is more general than the one in library/clp/clpfd.pl, since it allows to work with incomplete double lists, provided that the transpose have sense. Example:

?- transpose([[1,2,3,4],[5,6,7,8],[9,10],[11,12],[13]], Ts).
Ts = [[1, 5, 9, 11, 13], [2, 6, 10, 12], [3, 7], [4, 8]].