anchor.diff:  ; (1 4 5)(2 3)
   
   (defun to-graph (alpha)
  -  )
  +  nil)
   
   ; >(to-complete '(4 3 2 5 1))
   ; ((1 4 5)(2 3))
  
positive.code: ; return the orbit of element i in alpha
  ; orbit_{alpha}(i) = {\alpha^k(i) : k >= 0} subset X_n
  ; alpha is in disjoint cycle representation
  (defun orbit (i alpha)
    (find-if #'(lambda (cycle) (member i cycle)) alpha))
  
  (defun factorization ()
  
negative.code: (defun all-orbits (alpha)
    (let ((all-orbits nil))
      (loop for i from 1 to (length alpha) do
            (setq all-orbits (cons (orbit-g i alpha) all-orbits)))
      (remove-duplicates all-orbits :test-not #'uniquep)))
  
  ; given a permutation alpha in graph representation
  