import datatypes struct KeyVal { mut: key int val int } fn (a KeyVal) == (b KeyVal) bool { return a.key == b.key } fn (a KeyVal) < (b KeyVal) bool { return a.key < b.key } fn main() { mut bst := datatypes.BSTree[KeyVal]{} bst.insert(KeyVal{ key: 1, val: 12 }) println(bst.in_order_traversal()) bst.insert(KeyVal{ key: 2, val: 34 }) bst.insert(KeyVal{ key: -2, val: 203 }) for elem in bst.in_order_traversal() { println(elem.val) } }