Modulecursor-0.3.2.0Haskell2010
Cursor.Simple.Tree
- 9 types
- 79 values
- Packagecursor-0.3.2.0
- Exports88
- LanguageHaskell2010
- LicenceMIT
- SourceTree.hs
Constructors
TreeAbovetreeAboveLefts :: ![CTree b]treeAboveAbove :: !Maybe (TreeAbove b)treeAboveNode :: !btreeAboveRights :: ![CTree b]
Instances7Functor, Eq, Show, Generic, NFData, Validity, …
Functor TreeAboveDefined in cursor-0.3.2.0 · Cursor.Tree.TypesEq b => Eq (TreeAbove b)Defined in cursor-0.3.2.0 · Cursor.Tree.TypesShow b => Show (TreeAbove b)Defined in cursor-0.3.2.0 · Cursor.Tree.TypesGeneric (TreeAbove b)Defined in cursor-0.3.2.0 · Cursor.Tree.TypesNFData b => NFData (TreeAbove b)Defined in cursor-0.3.2.0 · Cursor.Tree.TypesValidity b => Validity (TreeAbove b)Defined in cursor-0.3.2.0 · Cursor.Tree.Typestype Rep (TreeAbove b) = D1 ('MetaDataDefined in cursor-0.3.2.0 · Cursor.Tree.Types"TreeAbove"
"Cursor.Tree.Types"
"cursor-0.3.2.0-F9X8WOAtgDl2Ee7ztttX2k"
'False) (C1 ('MetaCons"TreeAbove"
'PrefixI 'True) ((S1 ('MetaSel ('Just"treeAboveLefts"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [CTree b]) :*: S1 ('MetaSel ('Just"treeAboveAbove"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe (TreeAbove b)))) :*: (S1 ('MetaSel ('Just"treeAboveNode"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: S1 ('MetaSel ('Just"treeAboveRights"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [CTree b]))))
Constructors
Instances6Eq, Show, Generic, NFData, Validity, Rep
Eq TreeCursorSelectionDefined in cursor-0.3.2.0 · Cursor.Tree.TypesShow TreeCursorSelectionDefined in cursor-0.3.2.0 · Cursor.Tree.TypesGeneric TreeCursorSelectionDefined in cursor-0.3.2.0 · Cursor.Tree.TypesNFData TreeCursorSelectionDefined in cursor-0.3.2.0 · Cursor.Tree.TypesValidity TreeCursorSelectionDefined in cursor-0.3.2.0 · Cursor.Tree.Typestype Rep TreeCursorSelection = D1 ('MetaDataDefined in cursor-0.3.2.0 · Cursor.Tree.Types"TreeCursorSelection"
"Cursor.Tree.Types"
"cursor-0.3.2.0-F9X8WOAtgDl2Ee7ztttX2k"
'False) (C1 ('MetaCons"SelectNode"
'PrefixI 'False) U1 :+: C1 ('MetaCons"SelectChild"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TreeCursorSelection)))
Go back and down as far as necessary to find a previous element on a level below
Go up as far as necessary to find a next element on a level above and forward
Note: This will fail if there is a next node on the same level or any node below the current node
Swaps the current node with the previous node on the same level
Example:
Before:
p
|- a
|- b <--After:
p
|- b <--
|- aSwaps the current node with the next node on the same level
Example:
Before:
p
|- a <--
|- bAfter:
p
|- b
|- a <--Constructors
Instances7Functor, Eq, Show, Generic, NFData, Validity, …
Functor SwapResultDefined in cursor-0.3.2.0 · Cursor.Tree.SwapEq a => Eq (SwapResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.SwapShow a => Show (SwapResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.SwapGeneric (SwapResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.SwapNFData a => NFData (SwapResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.SwapValidity a => Validity (SwapResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.Swaptype Rep (SwapResult a) = D1 ('MetaDataDefined in cursor-0.3.2.0 · Cursor.Tree.Swap"SwapResult"
"Cursor.Tree.Swap"
"cursor-0.3.2.0-F9X8WOAtgDl2Ee7ztttX2k"
'False) (C1 ('MetaCons"SwapperIsTopNode"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"NoSiblingsToSwapWith"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Swapped"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))))
Instances9Monad, Functor, Applicative, Eq, Show, Generic, …
Monad PromoteElemResultDefined in cursor-0.3.2.0 · Cursor.Tree.PromoteFunctor PromoteElemResultDefined in cursor-0.3.2.0 · Cursor.Tree.PromoteApplicative PromoteElemResultDefined in cursor-0.3.2.0 · Cursor.Tree.PromoteEq a => Eq (PromoteElemResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.PromoteShow a => Show (PromoteElemResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.PromoteGeneric (PromoteElemResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.PromoteNFData a => NFData (PromoteElemResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.PromoteValidity a => Validity (PromoteElemResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.Promotetype Rep (PromoteElemResult a) = D1 ('MetaDataDefined in cursor-0.3.2.0 · Cursor.Tree.Promote"PromoteElemResult"
"Cursor.Tree.Promote"
"cursor-0.3.2.0-F9X8WOAtgDl2Ee7ztttX2k"
'False) ((C1 ('MetaCons"CannotPromoteTopElem"
'PrefixI 'False) U1 :+: C1 ('MetaCons"NoGrandparentToPromoteElemUnder"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"NoSiblingsToAdoptChildren"
'PrefixI 'False) U1 :+: C1 ('MetaCons"PromotedElem"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))))
Constructors
Instances9Monad, Functor, Applicative, Eq, Show, Generic, …
Monad PromoteResultDefined in cursor-0.3.2.0 · Cursor.Tree.PromoteFunctor PromoteResultDefined in cursor-0.3.2.0 · Cursor.Tree.PromoteApplicative PromoteResultDefined in cursor-0.3.2.0 · Cursor.Tree.PromoteEq a => Eq (PromoteResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.PromoteShow a => Show (PromoteResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.PromoteGeneric (PromoteResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.PromoteNFData a => NFData (PromoteResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.PromoteValidity a => Validity (PromoteResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.Promotetype Rep (PromoteResult a) = D1 ('MetaDataDefined in cursor-0.3.2.0 · Cursor.Tree.Promote"PromoteResult"
"Cursor.Tree.Promote"
"cursor-0.3.2.0-F9X8WOAtgDl2Ee7ztttX2k"
'False) (C1 ('MetaCons"CannotPromoteTopNode"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"NoGrandparentToPromoteUnder"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Promoted"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))))
Constructors
Instances7Functor, Eq, Show, Generic, NFData, Validity, …
Functor DemoteResultDefined in cursor-0.3.2.0 · Cursor.Tree.DemoteEq a => Eq (DemoteResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.DemoteShow a => Show (DemoteResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.DemoteGeneric (DemoteResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.DemoteNFData a => NFData (DemoteResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.DemoteValidity a => Validity (DemoteResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.Demotetype Rep (DemoteResult a) = D1 ('MetaDataDefined in cursor-0.3.2.0 · Cursor.Tree.Demote"DemoteResult"
"Cursor.Tree.Demote"
"cursor-0.3.2.0-F9X8WOAtgDl2Ee7ztttX2k"
'False) (C1 ('MetaCons"CannotDemoteTopNode"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"NoSiblingsToDemoteUnder"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Demoted"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))))
Demotes the current node to the level of its children, by adding two roots. One for the current node and one for its children that are left behind.
Example:
Before:
p
|- a <--
|- bAfter:
p
|- <given element 1>
| |- a <--
|- <given element 2>
| |- bDemotes the current subtree to the level of its children, by adding a root.
Example:
Before:
a <--
|- bAfter:
<given element>
|- a <--
|- bInstances9Functor, Foldable, Traversable, Eq, Show, Generic, …
Functor CTreeDefined in cursor-0.3.2.0 · Cursor.Tree.TypesFoldable CTreeDefined in cursor-0.3.2.0 · Cursor.Tree.TypesTraversable CTreeDefined in cursor-0.3.2.0 · Cursor.Tree.TypesEq a => Eq (CTree a)Defined in cursor-0.3.2.0 · Cursor.Tree.TypesShow a => Show (CTree a)Defined in cursor-0.3.2.0 · Cursor.Tree.TypesGeneric (CTree a)Defined in cursor-0.3.2.0 · Cursor.Tree.TypesNFData a => NFData (CTree a)Defined in cursor-0.3.2.0 · Cursor.Tree.TypesValidity a => Validity (CTree a)Defined in cursor-0.3.2.0 · Cursor.Tree.Typestype Rep (CTree a) = D1 ('MetaDataDefined in cursor-0.3.2.0 · Cursor.Tree.Types"CTree"
"Cursor.Tree.Types"
"cursor-0.3.2.0-F9X8WOAtgDl2Ee7ztttX2k"
'False) (C1 ('MetaCons"CNode"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CForest a))))
Instances9Functor, Foldable, Traversable, Eq, Show, Generic, …
Functor CForestDefined in cursor-0.3.2.0 · Cursor.Tree.TypesFoldable CForestDefined in cursor-0.3.2.0 · Cursor.Tree.TypesTraversable CForestDefined in cursor-0.3.2.0 · Cursor.Tree.TypesEq a => Eq (CForest a)Defined in cursor-0.3.2.0 · Cursor.Tree.TypesShow a => Show (CForest a)Defined in cursor-0.3.2.0 · Cursor.Tree.TypesGeneric (CForest a)Defined in cursor-0.3.2.0 · Cursor.Tree.TypesNFData a => NFData (CForest a)Defined in cursor-0.3.2.0 · Cursor.Tree.TypesValidity a => Validity (CForest a)Defined in cursor-0.3.2.0 · Cursor.Tree.Typestype Rep (CForest a) = D1 ('MetaDataDefined in cursor-0.3.2.0 · Cursor.Tree.Types"CForest"
"Cursor.Tree.Types"
"cursor-0.3.2.0-F9X8WOAtgDl2Ee7ztttX2k"
'False) (C1 ('MetaCons"EmptyCForest"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ClosedForest"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NonEmpty (Tree a)))) :+: C1 ('MetaCons"OpenForest"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NonEmpty (CTree a))))))