rotations :: Eq a => [a] -> [(a, [a])]
rotations xs =
    map (\ys -> (h ys, ys)) (sizedSubsequences (length xs - 1) xs)
  where
    -- NOTE Safe on sets
    h ys = Prelude.head (xs \\ ys)


-- | Get all subsequences of a given size
rotations :: Eq a => [a] -> [(a, [a])]
rotations xs =
    map (\ys -> (h ys, ys)) (sizedSubsequences (length xs - 1) xs)
  where
    -- NOTE Safe on sets
    h ys = Prelude.head (xs \\ ys)


-- | Get all subsequences of a given size
rotations xs =
    map (\ys -> (h ys, ys)) (sizedSubsequences (length xs - 1) xs)
  where
    -- NOTE Safe on sets
    h ys = Prelude.head (xs \\ ys)


-- | Get all subsequences of a given size