BinarySearchTree

class BinarySearchTree[DSL <: ScalaDSL, CLib <: CoreLib[DSL], SLib <: ScalaLib[DSL, CLib]](val dsl: DSL, val coreLib: CLib & CoreLib[DSL], val scalaLib: SLib & ScalaLib[DSL, CLib & CoreLib[DSL]])
Companion
object
class Object
trait Matchable
class Any

Type members

Classlikes

object Branch
object BranchF
object NonEmptyTree
object Singleton
object Summary

Types

type Branch[K, V] = BranchF[K, NonEmptyTree[K, V]]
type NonEmptyTree[K, V] = Rec[[_] =>> NonEmptyTreeF[K, V, _$3]]
type NonEmptyTreeF[K, V, X] = Singleton[K, V] |+| BranchF[K, X]
type Tree[K, V] = Done |+| NonEmptyTree[K, V]

Value members

Concrete methods

def clear[K, V](f: V -⚬ Done): Tree[K, V] -⚬ Done
def delete[K, V](`evidence$4`: Ordering[K]): Val[K] |*| Tree[K, V] -⚬ Maybe[V] |*| Tree[K, V]
def empty[K, V]: Done -⚬ Tree[K, V]
def insert[K, V](`evidence$2`: Ordering[K]): Val[K] |*| V |*| Tree[K, V] -⚬ Maybe[V] |*| Tree[K, V]
def insertOrUpdate[K, V](update: V |*| V -⚬ V)(`evidence$3`: Ordering[K]): Val[K] |*| V |*| Tree[K, V] -⚬ Tree[K, V]
Value Params
update

function used to update the current value under the given key, if any. The first argument of update is the new value, the second argument is the current value stored in the tree.

def singleton[K, V]: Val[K] |*| V -⚬ Tree[K, V]
def update[K, V, A](f: A |*| V -⚬ PMaybe[V])(`evidence$5`: Ordering[K]): Val[K] |*| A |*| Tree[K, V] -⚬ PMaybe[A] |*| Tree[K, V]
def update[K, V, A](f: A |*| V -⚬ PMaybe[V], ifAbsent: A -⚬ Done)(`evidence$6`: Ordering[K]): Val[K] |*| A |*| Tree[K, V] -⚬ Tree[K, V]

Concrete fields

val coreLib: CLib & CoreLib[DSL]
val dsl: DSL
val scalaLib: SLib & ScalaLib[DSL, CLib & CoreLib[DSL]]