matterhorn-50200.15.0: Terminal client for the Mattermost chat system
Safe HaskellNone
LanguageHaskell2010

Matterhorn.Zipper

Synopsis

Documentation

data Zipper a b Source #

Instances

Instances details
Functor (Zipper a) Source # 
Instance details

Defined in Matterhorn.Zipper

Methods

fmap :: (a0 -> b) -> Zipper a a0 -> Zipper a b #

(<$) :: a0 -> Zipper a b -> Zipper a a0 #

Foldable (Zipper a) Source # 
Instance details

Defined in Matterhorn.Zipper

Methods

fold :: Monoid m => Zipper a m -> m #

foldMap :: Monoid m => (a0 -> m) -> Zipper a a0 -> m #

foldMap' :: Monoid m => (a0 -> m) -> Zipper a a0 -> m #

foldr :: (a0 -> b -> b) -> b -> Zipper a a0 -> b #

foldr' :: (a0 -> b -> b) -> b -> Zipper a a0 -> b #

foldl :: (b -> a0 -> b) -> b -> Zipper a a0 -> b #

foldl' :: (b -> a0 -> b) -> b -> Zipper a a0 -> b #

foldr1 :: (a0 -> a0 -> a0) -> Zipper a a0 -> a0 #

foldl1 :: (a0 -> a0 -> a0) -> Zipper a a0 -> a0 #

toList :: Zipper a a0 -> [a0] #

null :: Zipper a a0 -> Bool #

length :: Zipper a a0 -> Int #

elem :: Eq a0 => a0 -> Zipper a a0 -> Bool #

maximum :: Ord a0 => Zipper a a0 -> a0 #

minimum :: Ord a0 => Zipper a a0 -> a0 #

sum :: Num a0 => Zipper a a0 -> a0 #

product :: Num a0 => Zipper a a0 -> a0 #

fromList :: Eq b => [(a, [b])] -> Zipper a b Source #

toList :: Zipper a b -> [(a, [b])] Source #

focus :: Zipper a b -> Maybe b Source #

left :: Zipper a b -> Zipper a b Source #

leftL :: Lens (Zipper a b) (Zipper a b) (Zipper a b) (Zipper a b) Source #

right :: Zipper a b -> Zipper a b Source #

rightL :: Lens (Zipper a b) (Zipper a b) (Zipper a b) (Zipper a b) Source #

findRight :: (b -> Bool) -> Zipper a b -> Zipper a b Source #

maybeFindRight :: (b -> Bool) -> Zipper a b -> Maybe (Zipper a b) Source #

updateListBy Source #

Arguments

:: Eq b 
=> (Maybe b -> b -> Bool)

The comparison function. This is given the previous zipper's focus value (which is optional) and is given every element in the new zipper state for comparison. This should return True for the item in the new zipper that matches the focused item in the old zipper.

-> [(a, [b])]

The new zipper list contents.

-> Zipper a b

The old zipper.

-> Zipper a b 

Update the zipper's entry list, using the specified function determine which entry should be selected in the new zipper state.

filterZipper :: Eq b => (b -> Bool) -> Zipper a b -> Zipper a b Source #

maybeMapZipper :: Eq c => (b -> Maybe c) -> Zipper a b -> Zipper a c Source #

position :: Eq b => Zipper a b -> Maybe Int Source #