treemap-2.4.0.20180213: A tree of Data.Map.

Safe HaskellNone
LanguageHaskell2010

Data.TreeMap.Strict.Zipper

Contents

Synopsis

Type Zipper

data Zipper k a Source #

Constructors

Zipper 

Fields

Instances

(Eq k, Eq a) => Eq (Zipper k a) Source # 

Methods

(==) :: Zipper k a -> Zipper k a -> Bool #

(/=) :: Zipper k a -> Zipper k a -> Bool #

(Ord k, Data a, Data k) => Data (Zipper k a) Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Zipper k a -> c (Zipper k a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Zipper k a) #

toConstr :: Zipper k a -> Constr #

dataTypeOf :: Zipper k a -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (Zipper k a)) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Zipper k a)) #

gmapT :: (forall b. Data b => b -> b) -> Zipper k a -> Zipper k a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Zipper k a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Zipper k a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Zipper k a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Zipper k a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Zipper k a -> m (Zipper k a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Zipper k a -> m (Zipper k a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Zipper k a -> m (Zipper k a) #

(Show k, Show a) => Show (Zipper k a) Source # 

Methods

showsPrec :: Int -> Zipper k a -> ShowS #

show :: Zipper k a -> String #

showList :: [Zipper k a] -> ShowS #

zipper :: TreeMap k a -> Zipper k a Source #

root :: Ord k => Zipper k a -> TreeMap k a Source #

zipath :: Zipper k a -> [k] Source #

current :: Zipper k a -> TreeMap k a Source #

Type Cursor

data Cursor k a Source #

Constructors

Cursor 

Instances

(Eq k, Eq a) => Eq (Cursor k a) Source # 

Methods

(==) :: Cursor k a -> Cursor k a -> Bool #

(/=) :: Cursor k a -> Cursor k a -> Bool #

(Ord k, Data a, Data k) => Data (Cursor k a) Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Cursor k a -> c (Cursor k a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Cursor k a) #

toConstr :: Cursor k a -> Constr #

dataTypeOf :: Cursor k a -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (Cursor k a)) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Cursor k a)) #

gmapT :: (forall b. Data b => b -> b) -> Cursor k a -> Cursor k a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Cursor k a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Cursor k a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Cursor k a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Cursor k a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Cursor k a -> m (Cursor k a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Cursor k a -> m (Cursor k a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Cursor k a -> m (Cursor k a) #

(Show k, Show a) => Show (Cursor k a) Source # 

Methods

showsPrec :: Int -> Cursor k a -> ShowS #

show :: Cursor k a -> String #

showList :: [Cursor k a] -> ShowS #

Axis

type Axis k a = Zipper k a -> [Zipper k a] Source #

type AxisAlt f k a = Zipper k a -> f (Zipper k a) Source #

axis_collect :: (z -> Maybe z) -> z -> [z] Source #

Collect all Zippers along a given axis, including the first Zipper.

axis_collect_without_self :: (z -> Maybe z) -> z -> [z] Source #

Collect all Zippers along a given axis, excluding the first Zipper.

Axis self

axis_self :: Zipper k a -> Node k a Source #

Axis child

axis_child :: Ord k => Axis k a Source #

Axis ancestor

Axis descendant

Axis preceding

Axis following

Axis parent

Filter

axis_filter :: Axis k a -> (Zipper k a -> Bool) -> Axis k a infixl 5 Source #

axis_at :: Alternative f => Axis k a -> Int -> AxisAlt f k a infixl 5 Source #

zipper_null :: Axis k a -> Zipper k a -> Bool Source #