simple-zipper-0.1.0.0: Zippers made slightly easier
Control.Zipper.Simple
data Root a Source #
Instances
Associated Types
type RootedAt (Root a) :: * Source #
Methods
rezip :: Root a -> RootedAt (Root a) Source #
type FocusedAt (Root a) :: * Source #
focus :: Lens' (Root a) (FocusedAt (Root a)) Source #
data z ==> a infixl 8 Source #
type RootedAt ((==>) z x) :: * Source #
rezip :: (z ==> x) -> RootedAt (z ==> x) Source #
type BuildsOn ((==>) z a) :: * Source #
ascend :: (z ==> a) -> BuildsOn (z ==> a) Source #
type FocusedAt ((==>) z a) :: * Source #
focus :: Lens' (z ==> a) (FocusedAt (z ==> a)) Source #
data z =*=> a infixl 8 Source #
type RootedAt ((=*=>) z x) :: * Source #
rezip :: (z =*=> x) -> RootedAt (z =*=> x) Source #
type BuildsOn ((=*=>) z a) :: * Source #
ascend :: (z =*=> a) -> BuildsOn (z =*=> a) Source #
type FocusedAt ((=*=>) z a) :: * Source #
focus :: Lens' (z =*=> a) (FocusedAt (z =*=> a)) Source #
class Rooted z where Source #
type RootedAt z Source #
rezip :: z -> RootedAt z Source #
rezip :: (Rooted (BuildsOn z), Ascend z) => z -> RootedAt (BuildsOn z) Source #
class Focused z where Source #
Minimal complete definition
focus
type FocusedAt z Source #
focus :: Lens' z (FocusedAt z) Source #
class Ascend z where Source #
ascend
type BuildsOn z Source #
ascend :: z -> BuildsOn z Source #
root :: a -> Root a Source #
descendLens :: Focused z => Lens' (FocusedAt z) a -> z -> z ==> a Source #
descendPrism :: Focused z => Prism' (FocusedAt z) a -> z -> Maybe (z ==> a) Source #
descendList :: (Focused z, FocusedAt z ~ [a]) => z -> Maybe (z =*=> a) Source #
leftward :: (z =*=> a) -> Maybe (z =*=> a) Source #
rightward :: (z =*=> a) -> Maybe (z =*=> a) Source #
deleteFocus :: (z =*=> a) -> Either z (z =*=> a) Source #