ListZipper-1.1.1.0: Simple zipper for listsSource codeContentsIndex
Data.List.Zipper
Synopsis
data Zipper a = Zip ![a] ![a]
empty :: Zipper a
fromList :: [a] -> Zipper a
fromListEnd :: [a] -> Zipper a
toList :: Zipper a -> [a]
endp :: Zipper a -> Bool
emptyp :: Zipper a -> Bool
beginp :: Zipper a -> Bool
cursor :: Zipper a -> a
right :: Zipper a -> Zipper a
left :: Zipper a -> Zipper a
push :: a -> Zipper a -> Zipper a
insert :: a -> Zipper a -> Zipper a
pop :: Zipper a -> Zipper a
delete :: Zipper a -> Zipper a
replace :: a -> Zipper a -> Zipper a
Documentation
data Zipper a Source
Constructors
Zip ![a] ![a]
show/hide Instances
Eq a => Eq (Zipper a)
Show a => Show (Zipper a)
Arbitrary a => Arbitrary (Zipper a)
empty :: Zipper aSource
fromList :: [a] -> Zipper aSource
fromListEnd :: [a] -> Zipper aSource
toList :: Zipper a -> [a]Source
endp :: Zipper a -> BoolSource
emptyp :: Zipper a -> BoolSource
beginp :: Zipper a -> BoolSource
cursor :: Zipper a -> aSource

cursor z returns the targeted element in z.

This function is not total, but the invariant is that endp z == False means that you can safely call cursor z.

right :: Zipper a -> Zipper aSource
left :: Zipper a -> Zipper aSource
push :: a -> Zipper a -> Zipper aSource
insert :: a -> Zipper a -> Zipper aSource
pop :: Zipper a -> Zipper aSource
delete :: Zipper a -> Zipper aSource
replace :: a -> Zipper a -> Zipper aSource
replace a z changes the current element in the zipper to the passed in value. If there is no current element, the zipper is unchanged. If you want to add the element in that case instead, use insert a (delete z).
Produced by Haddock version 2.7.2