pickOne :: [a] -> [(a, [a])]
pickOne xs = LMatch.take xs $ (\(a,b:c) -> (b,a<>c)) . (`splitAt` xs) <$> [0..]
pickOne :: [a] -> [(a, [a])]
pickOne xs = LMatch.take xs $ (\(a,b:c) -> (b,a<>c)) . (`splitAt` xs) <$> [0..]
pickOne xs = LMatch.take xs $ (\(a,b:c) -> (b,a<>c)) . (`splitAt` xs) <$> [0..]