module Data.Nested.Tree
(
Tree
, fruit, forest
, null, size
, lookup, member
, empty
, singleton
, fromFoldable
, fromList
, toList
) where
import Data.Function (flip)
import Data.Maybe (Maybe)
import Data.Ord (Ord)
import Data.Int (Int)
import Data.Bool (Bool)
import Data.Foldable (Foldable)
import Data.Traversable (Traversable)
import Data.Nested.Internal ( Tree
, nullTree, fruit, forest
, sizeTree
, emptyTree
, singletonTree
, fromFoldableTree
, fromListTree
, toListTree
, lookupTree
, memberTree
)
empty ∷ α → Tree κ α
empty = emptyTree
null ∷ Tree κ α → Bool
null = nullTree
size ∷ Tree κ α → Int
size = sizeTree
lookup ∷ (Traversable φ, Ord κ) ⇒ φ κ → Tree κ α → (α, φ (Maybe α))
lookup = flip lookupTree
member ∷ (Traversable φ, Ord κ) ⇒ φ κ → Tree κ α → φ Bool
member = flip memberTree
singleton ∷ Foldable φ ⇒ α → φ (κ,α) → Tree κ α
singleton = singletonTree
fromFoldable ∷ (Foldable φ, Foldable ψ, Ord κ) ⇒ α → ψ (φ (κ, α)) → Tree κ α
fromFoldable = fromFoldableTree
fromList ∷ (Ord κ) ⇒ α → [[(κ, α)]] → Tree κ α
fromList = fromListTree
toList ∷ Tree κ α → (α, [[(κ, α)]])
toList = toListTree