summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tree.c6
-rw-r--r--tree.h1
2 files changed, 7 insertions, 0 deletions
diff --git a/tree.c b/tree.c
index a9063873..45132648 100644
--- a/tree.c
+++ b/tree.c
@@ -588,6 +588,11 @@ static val tree_construct(val opts, val keys)
return tree(keys, key_fn, less_fn, equal_fn);
}
+val treep(val obj)
+{
+ return tnil(type(obj) == COBJ && obj->co.cls == tree_s);
+}
+
void tree_init(void)
{
tree_s = intern(lit("tree"), user_package);
@@ -598,6 +603,7 @@ void tree_init(void)
reg_fun(intern(lit("key"), user_package), func_n1(key));
reg_fun(tree_s, func_n4o(tree, 0));
reg_fun(tree_construct_s, func_n2(tree_construct));
+ reg_fun(intern(lit("treep"), user_package), func_n1(treep));
reg_fun(intern(lit("tree-insert-node"), user_package), func_n2(tree_insert_node));
reg_fun(intern(lit("tree-insert"), user_package), func_n2(tree_insert));
reg_fun(intern(lit("tree-lookup-node"), user_package), func_n2(tree_lookup_node));
diff --git a/tree.h b/tree.h
index 7a27d7b1..32f846e9 100644
--- a/tree.h
+++ b/tree.h
@@ -35,4 +35,5 @@ val left(val node);
val right(val node);
val key(val node);
val tree(val keys, val key_fn, val less_fn, val equal_fn);
+val treep(val obj);
void tree_init(void);