feasibleCyclicArrangements :: ConstraintMap -> [CyclicArrangement]
feasibleCyclicArrangements xs = cycles len $ mapToTree xs
  where len = foldl' (\x _ -> x+1) 0 xs

-- | Builds an intermidate Tree data structure used for cycle search
feasibleCyclicArrangements :: ConstraintMap -> [CyclicArrangement]
feasibleCyclicArrangements xs = cycles len $ mapToTree xs
  where len = foldl' (\x _ -> x+1) 0 xs

-- | Builds an intermidate Tree data structure used for cycle search
feasibleCyclicArrangements xs = cycles len $ mapToTree xs
  where len = foldl' (\x _ -> x+1) 0 xs

-- | Builds an intermidate Tree data structure used for cycle search