import datatypes

struct KeyVal[T] {
	key string
	val T
}

fn (a KeyVal[T]) == (b KeyVal[T]) bool {
	return a.key == b.key
}

fn (a KeyVal[T]) < (b KeyVal[T]) bool {
	return a.key < b.key
}

fn main() {
	mut bst := datatypes.BSTree[KeyVal[int]]{}
	bst.insert(KeyVal[int]{key: "alibaba", val: 12})
	println(bst.in_order_traversal())
}
