-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A rotating sequence data structure -- @package data-carousel @version 0.1.0.0 module Data.Carousel data Carousel α -- | The empty carousel. empty :: Carousel α -- | There is guaranteed to be a cursor so long as the carousel is -- non-empty. cursor :: Traversal' (Carousel α) α -- | The carousel may be rotated to the left; this operation is written so -- as to always guarantee the presence of a cursor in a non-empty -- carousel. moveLeft :: Carousel α -> Carousel α -- | The carousel may be rotated to the right; this operation is written so -- as to always guarantee the presence of a cursor in a non-empty -- carousel. moveRight :: Carousel α -> Carousel α -- | You can delete the cursor from the carousel; the items to its right -- will move one over to the left. dropCursor :: Carousel α -> Carousel α -- | Remove all duplicate elements from the carousel. (TODO: this is -- inefficient) nub :: Eq α => Carousel α -> Carousel α -- | Append a list of elements to the right side of the carousel. append :: [α] -> Carousel α -> Carousel α clSequence :: Iso (Carousel α) (Carousel β) (Seq α) (Seq β) clList :: Iso (Carousel α) (Carousel β) [α] [β] instance Show α => Show (Carousel α) instance Eq α => Eq (Carousel α) instance Traversable Carousel instance Foldable Carousel instance Functor Carousel