fact: Fixpoint getAllPermutations(A : Type)(ls : list A) := match ls with | nil => nil :: nil | a :: ls' => let perms' := getAllPermutations ls' in flatten (map (addInAllLocations a) perms') end.
imports: FCF.FCF FCF.CompFold FCF.RndListElem Permutation