pure
<*>
import Data.List;permutations
f x=filter((==x).sort)$mapM id(x<$x)
x
import Data.List
sort
p(x:r)=do e<-p r;[take n e++x:drop n e|n<-[0..length e]] \n p x=[x]
;
\n
Control.Lens
{-...-}
/* ... */