balanced-binary-search-tree-1.0.0.0: Type safe BST and AVL trees
Copyright(c) Nicolás Rodríguez 2021
LicenseGPL-3
MaintainerNicolás Rodríguez
Stabilityexperimental
PortabilityPOSIX
Safe HaskellSafe
LanguageHaskell2010

Data.Tree.Node

Description

Definition of nodes for the type safe trees, along with a constructor and a value getter.

Synopsis

Documentation

data Node :: Nat -> Type -> Type Source #

Node constructor. It receives a value of an arbitrary type (of kind Type) and returns a new Node. At the type level, it has the type a of the value and a key k of kind Nat. A key may be defined through explicit type signature, like Node 'a' :: Node 6 Char.

Instances

Instances details
(t ~ 'ForkTree l (Node n a1) r, a ~ LookupValueType x t t, o ~ CmpNat x n, Lookupable' x a ('ForkTree l (Node n a1) r) o) => Lookupable x a ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.BST.Intern.Lookup

Methods

lookup :: forall (l0 :: Tree) (n0 :: Nat) a10 (r0 :: Tree). ('ForkTree l (Node n a1) r ~ 'ForkTree l0 (Node n0 a10) r0, Member x ('ForkTree l (Node n a1) r) ('ForkTree l (Node n a1) r) ~ 'True) => Proxy x -> BST ('ForkTree l (Node n a1) r) -> a Source #

(o ~ CmpNat x n, Insertable' x a ('ForkTree l (Node n a1) r) o) => Insertable x a ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.BST.Intern.Insert

Associated Types

type Insert x a ('ForkTree l (Node n a1) r) :: Tree Source #

Methods

insert :: Node x a -> BST ('ForkTree l (Node n a1) r) -> BST (Insert x a ('ForkTree l (Node n a1) r)) Source #

(t ~ 'ForkTree l (Node n a1) r, a ~ LookupValueType x t t, o ~ CmpNat x n, Lookupable' x a ('ForkTree l (Node n a1) r) o) => Lookupable x a ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.BST.Extern.Lookup

Methods

lookup :: forall (l0 :: Tree) (n0 :: Nat) a10 (r0 :: Tree). ('ForkTree l (Node n a1) r ~ 'ForkTree l0 (Node n0 a10) r0, Member x ('ForkTree l (Node n a1) r) ('ForkTree l (Node n a1) r) ~ 'True) => Proxy x -> ITree ('ForkTree l (Node n a1) r) -> a Source #

(o ~ CmpNat x n, Insertable' x a ('ForkTree l (Node n a1) r) o) => Insertable x a ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.BST.Extern.Insert

Associated Types

type Insert x a ('ForkTree l (Node n a1) r) :: Tree Source #

Methods

insert :: Node x a -> ITree ('ForkTree l (Node n a1) r) -> ITree (Insert x a ('ForkTree l (Node n a1) r)) Source #

(o ~ CmpNat x n, ProofIsBSTInsert' x a ('ForkTree l (Node n a1) r) o) => ProofIsBSTInsert x a ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.BST.Extern.InsertProofs

Methods

proofIsBSTInsert :: Proxy (Node x a) -> IsBSTT ('ForkTree l (Node n a1) r) -> IsBSTT (Insert x a ('ForkTree l (Node n a1) r)) Source #

(t ~ 'ForkTree l (Node n a1) r, a ~ LookupValueType x t t, Lookupable' x a t (CmpNat x n)) => Lookupable x a ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.AVL.Intern.Lookup

Methods

lookup :: forall (l0 :: Tree) (n0 :: Nat) a10 (r0 :: Tree). ('ForkTree l (Node n a1) r ~ 'ForkTree l0 (Node n0 a10) r0, Member x ('ForkTree l (Node n a1) r) ('ForkTree l (Node n a1) r) ~ 'True) => Proxy x -> AVL ('ForkTree l (Node n a1) r) -> a Source #

(o ~ CmpNat x n, Insertable' x a ('ForkTree l (Node n a1) r) o) => Insertable x a ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.AVL.Intern.Insert

Associated Types

type Insert x a ('ForkTree l (Node n a1) r) :: Tree Source #

Methods

insert :: Node x a -> AVL ('ForkTree l (Node n a1) r) -> AVL (Insert x a ('ForkTree l (Node n a1) r)) Source #

(o ~ CmpNat x n, Insertable' x a ('ForkTree l (Node n a1) r) o) => Insertable x a ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Insert

Associated Types

type Insert x a ('ForkTree l (Node n a1) r) :: Tree Source #

Methods

insert :: Node x a -> ITree ('ForkTree l (Node n a1) r) -> ITree (Insert x a ('ForkTree l (Node n a1) r)) Source #

(o ~ CmpNat x n, ProofIsBalancedInsert' x a ('ForkTree l (Node n a1) r) o) => ProofIsBalancedInsert x a ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.AVL.Extern.InsertProofs

Methods

proofIsBalancedInsert :: Proxy (Node x a) -> IsBalancedT ('ForkTree l (Node n a1) r) -> IsBalancedT (Insert x a ('ForkTree l (Node n a1) r)) Source #

ProofIsBSTInsert' x a ('ForkTree l (Node n a1) r) (CmpNat x n) => ProofIsBSTInsert x a ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.AVL.Extern.InsertProofs

Methods

proofIsBSTInsert :: Proxy (Node x a) -> IsBSTT ('ForkTree l (Node n a1) r) -> IsBSTT (Insert x a ('ForkTree l (Node n a1) r)) Source #

(r ~ 'ForkTree rl (Node rn rna) rr, o ~ CmpNat x rn, Insertable' x a r o) => Insertable' x a ('ForkTree l (Node n a1) ('ForkTree rl (Node rn rna) rr)) 'GT Source # 
Instance details

Defined in Data.Tree.BST.Extern.Insert

Associated Types

type Insert' x a ('ForkTree l (Node n a1) ('ForkTree rl (Node rn rna) rr)) 'GT :: Tree Source #

Methods

insert' :: Node x a -> ITree ('ForkTree l (Node n a1) ('ForkTree rl (Node rn rna) rr)) -> Proxy 'GT -> ITree (Insert' x a ('ForkTree l (Node n a1) ('ForkTree rl (Node rn rna) rr)) 'GT) Source #

Show a => Insertable' x a ('ForkTree l (Node n a1) 'EmptyTree) 'GT Source # 
Instance details

Defined in Data.Tree.BST.Extern.Insert

Associated Types

type Insert' x a ('ForkTree l (Node n a1) 'EmptyTree) 'GT :: Tree Source #

Methods

insert' :: Node x a -> ITree ('ForkTree l (Node n a1) 'EmptyTree) -> Proxy 'GT -> ITree (Insert' x a ('ForkTree l (Node n a1) 'EmptyTree) 'GT) Source #

(l ~ 'ForkTree ll (Node ln lna) lr, o ~ CmpNat x ln, Insertable' x a l o) => Insertable' x a ('ForkTree ('ForkTree ll (Node ln lna) lr) (Node n a1) r) 'LT Source # 
Instance details

Defined in Data.Tree.BST.Extern.Insert

Associated Types

type Insert' x a ('ForkTree ('ForkTree ll (Node ln lna) lr) (Node n a1) r) 'LT :: Tree Source #

Methods

insert' :: Node x a -> ITree ('ForkTree ('ForkTree ll (Node ln lna) lr) (Node n a1) r) -> Proxy 'LT -> ITree (Insert' x a ('ForkTree ('ForkTree ll (Node ln lna) lr) (Node n a1) r) 'LT) Source #

Show a => Insertable' x a ('ForkTree 'EmptyTree (Node n a1) r) 'LT Source # 
Instance details

Defined in Data.Tree.BST.Extern.Insert

Associated Types

type Insert' x a ('ForkTree 'EmptyTree (Node n a1) r) 'LT :: Tree Source #

Methods

insert' :: Node x a -> ITree ('ForkTree 'EmptyTree (Node n a1) r) -> Proxy 'LT -> ITree (Insert' x a ('ForkTree 'EmptyTree (Node n a1) r) 'LT) Source #

Show a => Insertable' x a ('ForkTree l (Node n a1) r) 'EQ Source # 
Instance details

Defined in Data.Tree.BST.Extern.Insert

Associated Types

type Insert' x a ('ForkTree l (Node n a1) r) 'EQ :: Tree Source #

Methods

insert' :: Node x a -> ITree ('ForkTree l (Node n a1) r) -> Proxy 'EQ -> ITree (Insert' x a ('ForkTree l (Node n a1) r) 'EQ) Source #

(r ~ 'ForkTree rl (Node rn rna) rr, o ~ CmpNat x rn, Insertable' x a r o, Balanceable ('ForkTree l (Node n a1) (Insert' x a r o))) => Insertable' x a ('ForkTree l (Node n a1) ('ForkTree rl (Node rn rna) rr)) 'GT Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Insert

Associated Types

type Insert' x a ('ForkTree l (Node n a1) ('ForkTree rl (Node rn rna) rr)) 'GT :: Tree Source #

Methods

insert' :: Node x a -> ITree ('ForkTree l (Node n a1) ('ForkTree rl (Node rn rna) rr)) -> Proxy 'GT -> ITree (Insert' x a ('ForkTree l (Node n a1) ('ForkTree rl (Node rn rna) rr)) 'GT)

(Show a, Balanceable ('ForkTree l (Node n a1) ('ForkTree 'EmptyTree (Node x a) 'EmptyTree))) => Insertable' x a ('ForkTree l (Node n a1) 'EmptyTree) 'GT Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Insert

Associated Types

type Insert' x a ('ForkTree l (Node n a1) 'EmptyTree) 'GT :: Tree Source #

Methods

insert' :: Node x a -> ITree ('ForkTree l (Node n a1) 'EmptyTree) -> Proxy 'GT -> ITree (Insert' x a ('ForkTree l (Node n a1) 'EmptyTree) 'GT)

(l ~ 'ForkTree ll (Node ln lna) lr, o ~ CmpNat x ln, Insertable' x a l o, Balanceable ('ForkTree (Insert' x a l o) (Node n a1) r)) => Insertable' x a ('ForkTree ('ForkTree ll (Node ln lna) lr) (Node n a1) r) 'LT Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Insert

Associated Types

type Insert' x a ('ForkTree ('ForkTree ll (Node ln lna) lr) (Node n a1) r) 'LT :: Tree Source #

Methods

insert' :: Node x a -> ITree ('ForkTree ('ForkTree ll (Node ln lna) lr) (Node n a1) r) -> Proxy 'LT -> ITree (Insert' x a ('ForkTree ('ForkTree ll (Node ln lna) lr) (Node n a1) r) 'LT)

(Show a, Balanceable ('ForkTree ('ForkTree 'EmptyTree (Node x a) 'EmptyTree) (Node n a1) r)) => Insertable' x a ('ForkTree 'EmptyTree (Node n a1) r) 'LT Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Insert

Associated Types

type Insert' x a ('ForkTree 'EmptyTree (Node n a1) r) 'LT :: Tree Source #

Methods

insert' :: Node x a -> ITree ('ForkTree 'EmptyTree (Node n a1) r) -> Proxy 'LT -> ITree (Insert' x a ('ForkTree 'EmptyTree (Node n a1) r) 'LT)

Show a => Insertable' x a ('ForkTree l (Node n a1) r) 'EQ Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Insert

Associated Types

type Insert' x a ('ForkTree l (Node n a1) r) 'EQ :: Tree Source #

Methods

insert' :: Node x a -> ITree ('ForkTree l (Node n a1) r) -> Proxy 'EQ -> ITree (Insert' x a ('ForkTree l (Node n a1) r) 'EQ)

(o ~ CmpNat x n, Deletable' x ('ForkTree l (Node n a1) r) o) => Deletable x ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.BST.Intern.Delete

Associated Types

type Delete x ('ForkTree l (Node n a1) r) :: Tree Source #

Methods

delete :: Proxy x -> BST ('ForkTree l (Node n a1) r) -> BST (Delete x ('ForkTree l (Node n a1) r)) Source #

(o ~ CmpNat x n, Deletable' x ('ForkTree l (Node n a1) r) o) => Deletable x ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

Associated Types

type Delete x ('ForkTree l (Node n a1) r) :: Tree Source #

Methods

delete :: Proxy x -> ITree ('ForkTree l (Node n a1) r) -> ITree (Delete x ('ForkTree l (Node n a1) r)) Source #

(o ~ CmpNat x n, ProofIsBSTDelete' x ('ForkTree l (Node n a1) r) o) => ProofIsBSTDelete x ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.BST.Extern.DeleteProofs

Methods

proofIsBSTDelete :: Proxy x -> IsBSTT ('ForkTree l (Node n a1) r) -> IsBSTT (Delete x ('ForkTree l (Node n a1) r)) Source #

(o ~ CmpNat x n, Deletable' x ('ForkTree l (Node n a1) r) o) => Deletable x ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.AVL.Intern.Delete

Associated Types

type Delete x ('ForkTree l (Node n a1) r) :: Tree Source #

Methods

delete :: Proxy x -> AVL ('ForkTree l (Node n a1) r) -> AVL (Delete x ('ForkTree l (Node n a1) r)) Source #

(o ~ CmpNat x n, Deletable' x ('ForkTree l (Node n a1) r) o) => Deletable x ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Delete

Associated Types

type Delete x ('ForkTree l (Node n a1) r) :: Tree Source #

Methods

delete :: Proxy x -> ITree ('ForkTree l (Node n a1) r) -> ITree (Delete x ('ForkTree l (Node n a1) r)) Source #

(o ~ CmpNat x n, ProofIsBalancedDelete' x ('ForkTree l (Node n a1) r) o) => ProofIsBalancedDelete x ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.AVL.Extern.DeleteProofs

Methods

proofIsBalancedDelete :: Proxy x -> IsBalancedT ('ForkTree l (Node n a1) r) -> IsBalancedT (Delete x ('ForkTree l (Node n a1) r)) Source #

(o ~ CmpNat x n, ProofIsBSTDelete' x ('ForkTree l (Node n a1) r) o) => ProofIsBSTDelete x ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.AVL.Extern.DeleteProofs

Methods

proofIsBSTDelete :: Proxy x -> IsBSTT ('ForkTree l (Node n a1) r) -> IsBSTT (Delete x ('ForkTree l (Node n a1) r)) Source #

(o ~ CmpNat x rn, Deletable' x ('ForkTree rl (Node rn ra) rr) o) => Deletable' x ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'GT Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

Associated Types

type Delete' x ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'GT :: Tree Source #

Methods

delete' :: Proxy x -> ITree ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) -> Proxy 'GT -> ITree (Delete' x ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'GT) Source #

Deletable' x ('ForkTree l (Node n a1) 'EmptyTree) 'GT Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

Associated Types

type Delete' x ('ForkTree l (Node n a1) 'EmptyTree) 'GT :: Tree Source #

Methods

delete' :: Proxy x -> ITree ('ForkTree l (Node n a1) 'EmptyTree) -> Proxy 'GT -> ITree (Delete' x ('ForkTree l (Node n a1) 'EmptyTree) 'GT) Source #

(o ~ CmpNat x ln, Deletable' x ('ForkTree ll (Node ln la) lr) o) => Deletable' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) r) 'LT Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

Associated Types

type Delete' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) r) 'LT :: Tree Source #

Methods

delete' :: Proxy x -> ITree ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) r) -> Proxy 'LT -> ITree (Delete' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) r) 'LT) Source #

Deletable' x ('ForkTree 'EmptyTree (Node n a1) r) 'LT Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

Associated Types

type Delete' x ('ForkTree 'EmptyTree (Node n a1) r) 'LT :: Tree Source #

Methods

delete' :: Proxy x -> ITree ('ForkTree 'EmptyTree (Node n a1) r) -> Proxy 'LT -> ITree (Delete' x ('ForkTree 'EmptyTree (Node n a1) r) 'LT) Source #

(l ~ 'ForkTree ll (Node ln la) lr, Show (MaxValue l), MaxKeyDeletable l, Maxable l) => Deletable' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'EQ Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

Associated Types

type Delete' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'EQ :: Tree Source #

Methods

delete' :: Proxy x -> ITree ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) ('ForkTree rl (Node rn ra) rr)) -> Proxy 'EQ -> ITree (Delete' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'EQ) Source #

Deletable' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) 'EmptyTree) 'EQ Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

Associated Types

type Delete' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) 'EmptyTree) 'EQ :: Tree Source #

Methods

delete' :: Proxy x -> ITree ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) 'EmptyTree) -> Proxy 'EQ -> ITree (Delete' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) 'EmptyTree) 'EQ) Source #

Deletable' x ('ForkTree 'EmptyTree (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'EQ Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

Associated Types

type Delete' x ('ForkTree 'EmptyTree (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'EQ :: Tree Source #

Methods

delete' :: Proxy x -> ITree ('ForkTree 'EmptyTree (Node n a1) ('ForkTree rl (Node rn ra) rr)) -> Proxy 'EQ -> ITree (Delete' x ('ForkTree 'EmptyTree (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'EQ) Source #

Deletable' x ('ForkTree 'EmptyTree (Node n a1) 'EmptyTree) 'EQ Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

Associated Types

type Delete' x ('ForkTree 'EmptyTree (Node n a1) 'EmptyTree) 'EQ :: Tree Source #

(o ~ CmpNat x rn, r ~ 'ForkTree rl (Node rn ra) rr, Deletable' x r o, Balanceable ('ForkTree l (Node n a1) (Delete' x r o))) => Deletable' x ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'GT Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Delete

Associated Types

type Delete' x ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'GT :: Tree Source #

Methods

delete' :: Proxy x -> ITree ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) -> Proxy 'GT -> ITree (Delete' x ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'GT)

Deletable' x ('ForkTree l (Node n a1) 'EmptyTree) 'GT Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Delete

Associated Types

type Delete' x ('ForkTree l (Node n a1) 'EmptyTree) 'GT :: Tree Source #

Methods

delete' :: Proxy x -> ITree ('ForkTree l (Node n a1) 'EmptyTree) -> Proxy 'GT -> ITree (Delete' x ('ForkTree l (Node n a1) 'EmptyTree) 'GT)

(l ~ 'ForkTree ll (Node ln la) lr, o ~ CmpNat x ln, Deletable' x l o, Balanceable ('ForkTree (Delete' x l (CmpNat x ln)) (Node n a1) r)) => Deletable' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) r) 'LT Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Delete

Associated Types

type Delete' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) r) 'LT :: Tree Source #

Methods

delete' :: Proxy x -> ITree ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) r) -> Proxy 'LT -> ITree (Delete' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) r) 'LT)

Deletable' x ('ForkTree 'EmptyTree (Node n a1) r) 'LT Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Delete

Associated Types

type Delete' x ('ForkTree 'EmptyTree (Node n a1) r) 'LT :: Tree Source #

Methods

delete' :: Proxy x -> ITree ('ForkTree 'EmptyTree (Node n a1) r) -> Proxy 'LT -> ITree (Delete' x ('ForkTree 'EmptyTree (Node n a1) r) 'LT)

(l ~ 'ForkTree ll (Node ln la) lr, r ~ 'ForkTree rl (Node rn ra) rr, Show (MaxValue l), MaxKeyDeletable l, Maxable l, Balanceable ('ForkTree (MaxKeyDelete l) (Node (MaxKey l) (MaxValue l)) r)) => Deletable' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'EQ Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Delete

Associated Types

type Delete' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'EQ :: Tree Source #

Methods

delete' :: Proxy x -> ITree ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) ('ForkTree rl (Node rn ra) rr)) -> Proxy 'EQ -> ITree (Delete' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'EQ)

Deletable' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) 'EmptyTree) 'EQ Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Delete

Associated Types

type Delete' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) 'EmptyTree) 'EQ :: Tree Source #

Methods

delete' :: Proxy x -> ITree ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) 'EmptyTree) -> Proxy 'EQ -> ITree (Delete' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) 'EmptyTree) 'EQ)

Deletable' x ('ForkTree 'EmptyTree (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'EQ Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Delete

Associated Types

type Delete' x ('ForkTree 'EmptyTree (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'EQ :: Tree Source #

Methods

delete' :: Proxy x -> ITree ('ForkTree 'EmptyTree (Node n a1) ('ForkTree rl (Node rn ra) rr)) -> Proxy 'EQ -> ITree (Delete' x ('ForkTree 'EmptyTree (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'EQ)

Deletable' x ('ForkTree 'EmptyTree (Node n a1) 'EmptyTree) 'EQ Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Delete

Associated Types

type Delete' x ('ForkTree 'EmptyTree (Node n a1) 'EmptyTree) 'EQ :: Tree Source #

Methods

delete' :: Proxy x -> ITree ('ForkTree 'EmptyTree (Node n a1) 'EmptyTree) -> Proxy 'EQ -> ITree (Delete' x ('ForkTree 'EmptyTree (Node n a1) 'EmptyTree) 'EQ)

Show a => Show (Node k a) Source # 
Instance details

Defined in Data.Tree.Node

Methods

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

show :: Node k a -> String #

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

Maxable ('ForkTree rl (Node rn ra) rr) => Maxable ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

Associated Types

type MaxKey ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) :: Nat Source #

type MaxValue ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) Source #

Methods

maxValue :: forall (l0 :: Tree) (n0 :: Nat) a10 (r :: Tree). 'ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr) ~ 'ForkTree l0 (Node n0 a10) r => ITree ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) -> MaxValue ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) Source #

Maxable ('ForkTree l (Node n a1) 'EmptyTree) Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

Associated Types

type MaxKey ('ForkTree l (Node n a1) 'EmptyTree) :: Nat Source #

type MaxValue ('ForkTree l (Node n a1) 'EmptyTree) Source #

Methods

maxValue :: forall (l0 :: Tree) (n0 :: Nat) a10 (r :: Tree). 'ForkTree l (Node n a1) 'EmptyTree ~ 'ForkTree l0 (Node n0 a10) r => ITree ('ForkTree l (Node n a1) 'EmptyTree) -> MaxValue ('ForkTree l (Node n a1) 'EmptyTree) Source #

MaxKeyDeletable ('ForkTree rl (Node rn ra) rr) => MaxKeyDeletable ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

Associated Types

type MaxKeyDelete ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) :: Tree Source #

Methods

maxKeyDelete :: forall (l0 :: Tree) (n0 :: Nat) a10 (r :: Tree). 'ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr) ~ 'ForkTree l0 (Node n0 a10) r => ITree ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) -> ITree (MaxKeyDelete ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr))) Source #

MaxKeyDeletable ('ForkTree l (Node n a1) 'EmptyTree) Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

Associated Types

type MaxKeyDelete ('ForkTree l (Node n a1) 'EmptyTree) :: Tree Source #

Methods

maxKeyDelete :: forall (l0 :: Tree) (n0 :: Nat) a10 (r :: Tree). 'ForkTree l (Node n a1) 'EmptyTree ~ 'ForkTree l0 (Node n0 a10) r => ITree ('ForkTree l (Node n a1) 'EmptyTree) -> ITree (MaxKeyDelete ('ForkTree l (Node n a1) 'EmptyTree)) Source #

(IsBSTC l, IsBSTC r, LtN l n ~ 'True, GtN r n ~ 'True) => IsBSTC ('ForkTree l (Node n a) r) Source # 
Instance details

Defined in Data.Tree.BST.Extern.Constructors

Methods

isBSTT :: IsBSTT ('ForkTree l (Node n a) r) Source #

(us ~ UnbalancedState (Height l) (Height r), Balanceable' ('ForkTree l (Node n a) r) us) => Balanceable ('ForkTree l (Node n a) r) Source # 
Instance details

Defined in Data.Tree.AVL.Intern.Balance

Associated Types

type Balance ('ForkTree l (Node n a) r) :: Tree Source #

Methods

balance :: AlmostAVL ('ForkTree l (Node n a) r) -> AVL (Balance ('ForkTree l (Node n a) r)) Source #

(IsBalancedC l, IsBalancedC r, BalancedHeights (Height l) (Height r) n ~ 'True) => IsBalancedC ('ForkTree l (Node n a) r) Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Constructors

Methods

isBalancedT :: IsBalancedT ('ForkTree l (Node n a) r) Source #

(us ~ UnbalancedState (Height l) (Height r), Balanceable' ('ForkTree l (Node n a) r) us) => Balanceable ('ForkTree l (Node n a) r) Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Balance

Associated Types

type Balance ('ForkTree l (Node n a) r) :: Tree Source #

Methods

balance :: ITree ('ForkTree l (Node n a) r) -> ITree (Balance ('ForkTree l (Node n a) r)) Source #

(r ~ 'ForkTree rl (Node rn ra) rr, MaxKeyDeletable r, Balanceable ('ForkTree l (Node n a1) (MaxKeyDelete r))) => MaxKeyDeletable ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Delete

Associated Types

type MaxKeyDelete ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) :: Tree Source #

Methods

maxKeyDelete :: forall (l0 :: Tree) (n0 :: Nat) a10 (r :: Tree). 'ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr) ~ 'ForkTree l0 (Node n0 a10) r => ITree ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) -> ITree (MaxKeyDelete ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr))) Source #

MaxKeyDeletable ('ForkTree l (Node n a1) 'EmptyTree) Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Delete

Associated Types

type MaxKeyDelete ('ForkTree l (Node n a1) 'EmptyTree) :: Tree Source #

Methods

maxKeyDelete :: forall (l0 :: Tree) (n0 :: Nat) a10 (r :: Tree). 'ForkTree l (Node n a1) 'EmptyTree ~ 'ForkTree l0 (Node n0 a10) r => ITree ('ForkTree l (Node n a1) 'EmptyTree) -> ITree (MaxKeyDelete ('ForkTree l (Node n a1) 'EmptyTree)) Source #

(us ~ UnbalancedState (Height l) (Height r), LtN l n ~ 'True, GtN r n ~ 'True, ProofIsBalancedBalance' ('ForkTree l (Node n a) r) us) => ProofIsBalancedBalance ('ForkTree l (Node n a) r) Source # 
Instance details

Defined in Data.Tree.AVL.Extern.BalanceProofs

(us ~ UnbalancedState (Height l) (Height r), ProofIsBSTBalance' ('ForkTree l (Node n a) r) us) => ProofIsBSTBalance ('ForkTree l (Node n a) r) Source # 
Instance details

Defined in Data.Tree.AVL.Extern.BalanceProofs

Methods

proofIsBSTBalance :: IsBSTT ('ForkTree l (Node n a) r) -> IsBSTT (Balance ('ForkTree l (Node n a) r)) Source #

(us ~ UnbalancedState (Height l) (Height r), ProofGtNBalance' ('ForkTree l (Node n1 a) r) n us) => ProofGtNBalance ('ForkTree l (Node n1 a) r) n Source # 
Instance details

Defined in Data.Tree.AVL.Intern.Balance

Methods

proofGtNBalance :: AlmostAVL ('ForkTree l (Node n1 a) r) -> Proxy n -> GtN (Balance ('ForkTree l (Node n1 a) r)) n :~: 'True Source #

(us ~ UnbalancedState (Height l) (Height r), ProofLtNBalance' ('ForkTree l (Node n1 a) r) n us) => ProofLtNBalance ('ForkTree l (Node n1 a) r) n Source # 
Instance details

Defined in Data.Tree.AVL.Intern.Balance

Methods

proofLtNBalance :: AlmostAVL ('ForkTree l (Node n1 a) r) -> Proxy n -> LtN (Balance ('ForkTree l (Node n1 a) r)) n :~: 'True Source #

(bs ~ BalancedState (Height rl) (Height rr), Rotateable ('ForkTree l (Node n a) ('ForkTree rl (Node rn ra) rr)) 'RightUnbalanced bs) => Balanceable' ('ForkTree l (Node n a) ('ForkTree rl (Node rn ra) rr)) 'RightUnbalanced Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Balance

Associated Types

type Balance' ('ForkTree l (Node n a) ('ForkTree rl (Node rn ra) rr)) 'RightUnbalanced :: Tree Source #

Methods

balance' :: ITree ('ForkTree l (Node n a) ('ForkTree rl (Node rn ra) rr)) -> Proxy 'RightUnbalanced -> ITree (Balance' ('ForkTree l (Node n a) ('ForkTree rl (Node rn ra) rr)) 'RightUnbalanced) Source #

Balanceable' ('ForkTree l (Node n a) r) 'NotUnbalanced Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Balance

Associated Types

type Balance' ('ForkTree l (Node n a) r) 'NotUnbalanced :: Tree Source #

(bs ~ BalancedState (Height ll) (Height lr), Rotateable ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a) r) 'LeftUnbalanced bs) => Balanceable' ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a) r) 'LeftUnbalanced Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Balance

Associated Types

type Balance' ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a) r) 'LeftUnbalanced :: Tree Source #

Methods

balance' :: ITree ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a) r) -> Proxy 'LeftUnbalanced -> ITree (Balance' ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a) r) 'LeftUnbalanced) Source #

(us ~ UnbalancedState (Height l) (Height r), ProofGtNBalance' ('ForkTree l (Node n1 a) r) n us) => ProofGtNBalance ('ForkTree l (Node n1 a) r) n Source # 
Instance details

Defined in Data.Tree.AVL.Extern.BalanceProofs

Methods

proofGtNBalance :: IsBSTT ('ForkTree l (Node n1 a) r) -> Proxy n -> GtN (Balance ('ForkTree l (Node n1 a) r)) n :~: 'True Source #

(us ~ UnbalancedState (Height l) (Height r), ProofLtNBalance' ('ForkTree l (Node n1 a) r) n us) => ProofLtNBalance ('ForkTree l (Node n1 a) r) n Source # 
Instance details

Defined in Data.Tree.AVL.Extern.BalanceProofs

Methods

proofLtNBalance :: IsBSTT ('ForkTree l (Node n1 a) r) -> Proxy n -> LtN (Balance ('ForkTree l (Node n1 a) r)) n :~: 'True Source #

Rotateable ('ForkTree l (Node n a) ('ForkTree ('ForkTree rll (Node rln rla) rlr) (Node rn ra) rr)) 'RightUnbalanced 'LeftHeavy Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Balance

Associated Types

type Rotate ('ForkTree l (Node n a) ('ForkTree ('ForkTree rll (Node rln rla) rlr) (Node rn ra) rr)) 'RightUnbalanced 'LeftHeavy :: Tree Source #

Methods

rotate :: ITree ('ForkTree l (Node n a) ('ForkTree ('ForkTree rll (Node rln rla) rlr) (Node rn ra) rr)) -> Proxy 'RightUnbalanced -> Proxy 'LeftHeavy -> ITree (Rotate ('ForkTree l (Node n a) ('ForkTree ('ForkTree rll (Node rln rla) rlr) (Node rn ra) rr)) 'RightUnbalanced 'LeftHeavy) Source #

Rotateable ('ForkTree l (Node n a) ('ForkTree rl (Node rn ra) rr)) 'RightUnbalanced 'Balanced Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Balance

Associated Types

type Rotate ('ForkTree l (Node n a) ('ForkTree rl (Node rn ra) rr)) 'RightUnbalanced 'Balanced :: Tree Source #

Methods

rotate :: ITree ('ForkTree l (Node n a) ('ForkTree rl (Node rn ra) rr)) -> Proxy 'RightUnbalanced -> Proxy 'Balanced -> ITree (Rotate ('ForkTree l (Node n a) ('ForkTree rl (Node rn ra) rr)) 'RightUnbalanced 'Balanced) Source #

Rotateable ('ForkTree l (Node n a) ('ForkTree rl (Node rn ra) rr)) 'RightUnbalanced 'RightHeavy Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Balance

Associated Types

type Rotate ('ForkTree l (Node n a) ('ForkTree rl (Node rn ra) rr)) 'RightUnbalanced 'RightHeavy :: Tree Source #

Methods

rotate :: ITree ('ForkTree l (Node n a) ('ForkTree rl (Node rn ra) rr)) -> Proxy 'RightUnbalanced -> Proxy 'RightHeavy -> ITree (Rotate ('ForkTree l (Node n a) ('ForkTree rl (Node rn ra) rr)) 'RightUnbalanced 'RightHeavy) Source #

Rotateable ('ForkTree ('ForkTree ll (Node ln la) ('ForkTree lrl (Node lrn lra) lrr)) (Node n a) r) 'LeftUnbalanced 'RightHeavy Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Balance

Associated Types

type Rotate ('ForkTree ('ForkTree ll (Node ln la) ('ForkTree lrl (Node lrn lra) lrr)) (Node n a) r) 'LeftUnbalanced 'RightHeavy :: Tree Source #

Methods

rotate :: ITree ('ForkTree ('ForkTree ll (Node ln la) ('ForkTree lrl (Node lrn lra) lrr)) (Node n a) r) -> Proxy 'LeftUnbalanced -> Proxy 'RightHeavy -> ITree (Rotate ('ForkTree ('ForkTree ll (Node ln la) ('ForkTree lrl (Node lrn lra) lrr)) (Node n a) r) 'LeftUnbalanced 'RightHeavy) Source #

Rotateable ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a) r) 'LeftUnbalanced 'Balanced Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Balance

Associated Types

type Rotate ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a) r) 'LeftUnbalanced 'Balanced :: Tree Source #

Methods

rotate :: ITree ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a) r) -> Proxy 'LeftUnbalanced -> Proxy 'Balanced -> ITree (Rotate ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a) r) 'LeftUnbalanced 'Balanced) Source #

Rotateable ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a) r) 'LeftUnbalanced 'LeftHeavy Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Balance

Associated Types

type Rotate ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a) r) 'LeftUnbalanced 'LeftHeavy :: Tree Source #

Methods

rotate :: ITree ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a) r) -> Proxy 'LeftUnbalanced -> Proxy 'LeftHeavy -> ITree (Rotate ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a) r) 'LeftUnbalanced 'LeftHeavy) Source #

type Insert x a ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.BST.Intern.Insert

type Insert x a ('ForkTree l (Node n a1) r)
type Insert x a ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.BST.Extern.Insert

type Insert x a ('ForkTree l (Node n a1) r) = Insert' x a ('ForkTree l (Node n a1) r) (CmpNat x n)
type Insert x a ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.AVL.Intern.Insert

type Insert x a ('ForkTree l (Node n a1) r)
type Insert x a ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Insert

type Insert x a ('ForkTree l (Node n a1) r) = Insert' x a ('ForkTree l (Node n a1) r) (CmpNat x n)
type Insert' x a ('ForkTree l (Node n a1) ('ForkTree rl (Node rn rna) rr)) 'GT Source # 
Instance details

Defined in Data.Tree.BST.Extern.Insert

type Insert' x a ('ForkTree l (Node n a1) ('ForkTree rl (Node rn rna) rr)) 'GT = 'ForkTree l (Node n a1) (Insert' x a ('ForkTree rl (Node rn rna) rr) (CmpNat x rn))
type Insert' x a ('ForkTree l (Node n a1) 'EmptyTree) 'GT Source # 
Instance details

Defined in Data.Tree.BST.Extern.Insert

type Insert' x a ('ForkTree l (Node n a1) 'EmptyTree) 'GT = 'ForkTree l (Node n a1) ('ForkTree 'EmptyTree (Node x a) 'EmptyTree)
type Insert' x a ('ForkTree ('ForkTree ll (Node ln lna) lr) (Node n a1) r) 'LT Source # 
Instance details

Defined in Data.Tree.BST.Extern.Insert

type Insert' x a ('ForkTree ('ForkTree ll (Node ln lna) lr) (Node n a1) r) 'LT = 'ForkTree (Insert' x a ('ForkTree ll (Node ln lna) lr) (CmpNat x ln)) (Node n a1) r
type Insert' x a ('ForkTree 'EmptyTree (Node n a1) r) 'LT Source # 
Instance details

Defined in Data.Tree.BST.Extern.Insert

type Insert' x a ('ForkTree 'EmptyTree (Node n a1) r) 'LT = 'ForkTree ('ForkTree 'EmptyTree (Node x a) 'EmptyTree) (Node n a1) r
type Insert' x a ('ForkTree l (Node n a1) r) 'EQ Source # 
Instance details

Defined in Data.Tree.BST.Extern.Insert

type Insert' x a ('ForkTree l (Node n a1) r) 'EQ = 'ForkTree l (Node n a) r
type Insert' x a ('ForkTree l (Node n a1) ('ForkTree rl (Node rn rna) rr)) 'GT Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Insert

type Insert' x a ('ForkTree l (Node n a1) ('ForkTree rl (Node rn rna) rr)) 'GT = Balance ('ForkTree l (Node n a1) (Insert' x a ('ForkTree rl (Node rn rna) rr) (CmpNat x rn)))
type Insert' x a ('ForkTree l (Node n a1) 'EmptyTree) 'GT Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Insert

type Insert' x a ('ForkTree l (Node n a1) 'EmptyTree) 'GT = Balance ('ForkTree l (Node n a1) ('ForkTree 'EmptyTree (Node x a) 'EmptyTree))
type Insert' x a ('ForkTree ('ForkTree ll (Node ln lna) lr) (Node n a1) r) 'LT Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Insert

type Insert' x a ('ForkTree ('ForkTree ll (Node ln lna) lr) (Node n a1) r) 'LT = Balance ('ForkTree (Insert' x a ('ForkTree ll (Node ln lna) lr) (CmpNat x ln)) (Node n a1) r)
type Insert' x a ('ForkTree 'EmptyTree (Node n a1) r) 'LT Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Insert

type Insert' x a ('ForkTree 'EmptyTree (Node n a1) r) 'LT = Balance ('ForkTree ('ForkTree 'EmptyTree (Node x a) 'EmptyTree) (Node n a1) r)
type Insert' x a ('ForkTree l (Node n a1) r) 'EQ Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Insert

type Insert' x a ('ForkTree l (Node n a1) r) 'EQ = 'ForkTree l (Node n a) r
type Delete x ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.BST.Intern.Delete

type Delete x ('ForkTree l (Node n a1) r)
type Delete x ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

type Delete x ('ForkTree l (Node n a1) r) = Delete' x ('ForkTree l (Node n a1) r) (CmpNat x n)
type Delete x ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.AVL.Intern.Delete

type Delete x ('ForkTree l (Node n a1) r)
type Delete x ('ForkTree l (Node n a1) r) Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Delete

type Delete x ('ForkTree l (Node n a1) r) = Delete' x ('ForkTree l (Node n a1) r) (CmpNat x n)
type Delete' x ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'GT Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

type Delete' x ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'GT = 'ForkTree l (Node n a1) (Delete' x ('ForkTree rl (Node rn ra) rr) (CmpNat x rn))
type Delete' x ('ForkTree l (Node n a1) 'EmptyTree) 'GT Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

type Delete' x ('ForkTree l (Node n a1) 'EmptyTree) 'GT = 'ForkTree l (Node n a1) 'EmptyTree
type Delete' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) r) 'LT Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

type Delete' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) r) 'LT = 'ForkTree (Delete' x ('ForkTree ll (Node ln la) lr) (CmpNat x ln)) (Node n a1) r
type Delete' x ('ForkTree 'EmptyTree (Node n a1) r) 'LT Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

type Delete' x ('ForkTree 'EmptyTree (Node n a1) r) 'LT = 'ForkTree 'EmptyTree (Node n a1) r
type Delete' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'EQ Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

type Delete' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'EQ = 'ForkTree (MaxKeyDelete ('ForkTree ll (Node ln la) lr)) (Node (MaxKey ('ForkTree ll (Node ln la) lr)) (MaxValue ('ForkTree ll (Node ln la) lr))) ('ForkTree rl (Node rn ra) rr)
type Delete' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) 'EmptyTree) 'EQ Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

type Delete' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) 'EmptyTree) 'EQ = 'ForkTree ll (Node ln la) lr
type Delete' x ('ForkTree 'EmptyTree (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'EQ Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

type Delete' x ('ForkTree 'EmptyTree (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'EQ = 'ForkTree rl (Node rn ra) rr
type Delete' x ('ForkTree 'EmptyTree (Node n a1) 'EmptyTree) 'EQ Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

type Delete' x ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'GT Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Delete

type Delete' x ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'GT = Balance ('ForkTree l (Node n a1) (Delete' x ('ForkTree rl (Node rn ra) rr) (CmpNat x rn)))
type Delete' x ('ForkTree l (Node n a1) 'EmptyTree) 'GT Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Delete

type Delete' x ('ForkTree l (Node n a1) 'EmptyTree) 'GT = 'ForkTree l (Node n a1) 'EmptyTree
type Delete' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) r) 'LT Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Delete

type Delete' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) r) 'LT = Balance ('ForkTree (Delete' x ('ForkTree ll (Node ln la) lr) (CmpNat x ln)) (Node n a1) r)
type Delete' x ('ForkTree 'EmptyTree (Node n a1) r) 'LT Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Delete

type Delete' x ('ForkTree 'EmptyTree (Node n a1) r) 'LT = 'ForkTree 'EmptyTree (Node n a1) r
type Delete' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'EQ Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Delete

type Delete' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'EQ = Balance ('ForkTree (MaxKeyDelete ('ForkTree ll (Node ln la) lr)) (Node (MaxKey ('ForkTree ll (Node ln la) lr)) (MaxValue ('ForkTree ll (Node ln la) lr))) ('ForkTree rl (Node rn ra) rr))
type Delete' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) 'EmptyTree) 'EQ Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Delete

type Delete' x ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a1) 'EmptyTree) 'EQ = 'ForkTree ll (Node ln la) lr
type Delete' x ('ForkTree 'EmptyTree (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'EQ Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Delete

type Delete' x ('ForkTree 'EmptyTree (Node n a1) ('ForkTree rl (Node rn ra) rr)) 'EQ = 'ForkTree rl (Node rn ra) rr
type Delete' x ('ForkTree 'EmptyTree (Node n a1) 'EmptyTree) 'EQ Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Delete

type MaxKey ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

type MaxKey ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) = MaxKey ('ForkTree rl (Node rn ra) rr)
type MaxKey ('ForkTree l (Node n a1) 'EmptyTree) Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

type MaxKey ('ForkTree l (Node n a1) 'EmptyTree) = n
type MaxValue ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

type MaxValue ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) = MaxValue ('ForkTree rl (Node rn ra) rr)
type MaxValue ('ForkTree l (Node n a1) 'EmptyTree) Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

type MaxValue ('ForkTree l (Node n a1) 'EmptyTree) = a1
type MaxKeyDelete ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

type MaxKeyDelete ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) = 'ForkTree l (Node n a1) (MaxKeyDelete ('ForkTree rl (Node rn ra) rr))
type MaxKeyDelete ('ForkTree l (Node n a1) 'EmptyTree) Source # 
Instance details

Defined in Data.Tree.BST.Extern.Delete

type MaxKeyDelete ('ForkTree l (Node n a1) 'EmptyTree) = l
type Balance ('ForkTree l (Node n a) r) Source # 
Instance details

Defined in Data.Tree.AVL.Intern.Balance

type Balance ('ForkTree l (Node n a) r)
type Balance ('ForkTree l (Node n a) r) Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Balance

type Balance ('ForkTree l (Node n a) r) = Balance' ('ForkTree l (Node n a) r) (UnbalancedState (Height l) (Height r))
type MaxKeyDelete ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Delete

type MaxKeyDelete ('ForkTree l (Node n a1) ('ForkTree rl (Node rn ra) rr)) = Balance ('ForkTree l (Node n a1) (MaxKeyDelete ('ForkTree rl (Node rn ra) rr)))
type MaxKeyDelete ('ForkTree l (Node n a1) 'EmptyTree) Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Delete

type MaxKeyDelete ('ForkTree l (Node n a1) 'EmptyTree) = l
type Balance' ('ForkTree l (Node n a) r) 'NotUnbalanced Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Balance

type Balance' ('ForkTree l (Node n a) r) 'NotUnbalanced = 'ForkTree l (Node n a) r
type Balance' ('ForkTree l (Node n a) ('ForkTree rl (Node rn ra) rr)) 'RightUnbalanced Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Balance

type Balance' ('ForkTree l (Node n a) ('ForkTree rl (Node rn ra) rr)) 'RightUnbalanced = Rotate ('ForkTree l (Node n a) ('ForkTree rl (Node rn ra) rr)) 'RightUnbalanced (BalancedState (Height rl) (Height rr))
type Balance' ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a) r) 'LeftUnbalanced Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Balance

type Balance' ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a) r) 'LeftUnbalanced = Rotate ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a) r) 'LeftUnbalanced (BalancedState (Height ll) (Height lr))
type Rotate ('ForkTree l (Node n a) ('ForkTree ('ForkTree rll (Node rln rla) rlr) (Node rn ra) rr)) 'RightUnbalanced 'LeftHeavy Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Balance

type Rotate ('ForkTree l (Node n a) ('ForkTree ('ForkTree rll (Node rln rla) rlr) (Node rn ra) rr)) 'RightUnbalanced 'LeftHeavy = 'ForkTree ('ForkTree l (Node n a) rll) (Node rln rla) ('ForkTree rlr (Node rn ra) rr)
type Rotate ('ForkTree l (Node n a) ('ForkTree rl (Node rn ra) rr)) 'RightUnbalanced 'Balanced Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Balance

type Rotate ('ForkTree l (Node n a) ('ForkTree rl (Node rn ra) rr)) 'RightUnbalanced 'Balanced = 'ForkTree ('ForkTree l (Node n a) rl) (Node rn ra) rr
type Rotate ('ForkTree l (Node n a) ('ForkTree rl (Node rn ra) rr)) 'RightUnbalanced 'RightHeavy Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Balance

type Rotate ('ForkTree l (Node n a) ('ForkTree rl (Node rn ra) rr)) 'RightUnbalanced 'RightHeavy = 'ForkTree ('ForkTree l (Node n a) rl) (Node rn ra) rr
type Rotate ('ForkTree ('ForkTree ll (Node ln la) ('ForkTree lrl (Node lrn lra) lrr)) (Node n a) r) 'LeftUnbalanced 'RightHeavy Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Balance

type Rotate ('ForkTree ('ForkTree ll (Node ln la) ('ForkTree lrl (Node lrn lra) lrr)) (Node n a) r) 'LeftUnbalanced 'RightHeavy = 'ForkTree ('ForkTree ll (Node ln la) lrl) (Node lrn lra) ('ForkTree lrr (Node n a) r)
type Rotate ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a) r) 'LeftUnbalanced 'Balanced Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Balance

type Rotate ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a) r) 'LeftUnbalanced 'Balanced = 'ForkTree ll (Node ln la) ('ForkTree lr (Node n a) r)
type Rotate ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a) r) 'LeftUnbalanced 'LeftHeavy Source # 
Instance details

Defined in Data.Tree.AVL.Extern.Balance

type Rotate ('ForkTree ('ForkTree ll (Node ln la) lr) (Node n a) r) 'LeftUnbalanced 'LeftHeavy = 'ForkTree ll (Node ln la) ('ForkTree lr (Node n a) r)

mkNode :: Proxy k -> a -> Node k a Source #

Node constructor. Besides the value to be stored, it receives the key through a Proxy. It may be used like node = mkNode (Proxy::Proxy 6) 'a'.

getValue :: Node k a -> a Source #

Value getter from a Node.