A Lehmercode is a vector of integers w such w!i <= length w - 1 - i
for each i in [0..length w - 1]; such a vector encodes a permutation.
This module implements O(n) algorithms for unranking Lehmercodes and
permutations; the algorithms are due to W. Myrvold and F. Ruskey
[Ranking and Unranking Permutations in Linear Time, Information Processing
Letters, 79 (2001) 281-284].

In addition, this module implements sorting operators, the
symmetries in D8 acting on permutations, as well as most of the
common permutation statistics.