summaryrefslogtreecommitdiff
path: root/vere/pkg/noun/jets/d
diff options
context:
space:
mode:
Diffstat (limited to 'vere/pkg/noun/jets/d')
-rw-r--r--vere/pkg/noun/jets/d/by_all.c51
-rw-r--r--vere/pkg/noun/jets/d/by_any.c51
-rw-r--r--vere/pkg/noun/jets/d/by_apt.c78
-rw-r--r--vere/pkg/noun/jets/d/by_bif.c74
-rw-r--r--vere/pkg/noun/jets/d/by_del.c93
-rw-r--r--vere/pkg/noun/jets/d/by_dif.c83
-rw-r--r--vere/pkg/noun/jets/d/by_gas.c44
-rw-r--r--vere/pkg/noun/jets/d/by_get.c63
-rw-r--r--vere/pkg/noun/jets/d/by_has.c47
-rw-r--r--vere/pkg/noun/jets/d/by_int.c72
-rw-r--r--vere/pkg/noun/jets/d/by_jab.c63
-rw-r--r--vere/pkg/noun/jets/d/by_key.c42
-rw-r--r--vere/pkg/noun/jets/d/by_put.c102
-rw-r--r--vere/pkg/noun/jets/d/by_run.c53
-rw-r--r--vere/pkg/noun/jets/d/by_uni.c101
-rw-r--r--vere/pkg/noun/jets/d/by_urn.c52
-rw-r--r--vere/pkg/noun/jets/d/in_apt.c121
-rw-r--r--vere/pkg/noun/jets/d/in_bif.c72
-rw-r--r--vere/pkg/noun/jets/d/in_del.c88
-rw-r--r--vere/pkg/noun/jets/d/in_dif.c82
-rw-r--r--vere/pkg/noun/jets/d/in_gas.c42
-rw-r--r--vere/pkg/noun/jets/d/in_has.c45
-rw-r--r--vere/pkg/noun/jets/d/in_int.c65
-rw-r--r--vere/pkg/noun/jets/d/in_put.c87
-rw-r--r--vere/pkg/noun/jets/d/in_rep.c52
-rw-r--r--vere/pkg/noun/jets/d/in_run.c59
-rw-r--r--vere/pkg/noun/jets/d/in_tap.c46
-rw-r--r--vere/pkg/noun/jets/d/in_uni.c98
-rw-r--r--vere/pkg/noun/jets/d/in_wyt.c35
29 files changed, 1961 insertions, 0 deletions
diff --git a/vere/pkg/noun/jets/d/by_all.c b/vere/pkg/noun/jets/d/by_all.c
new file mode 100644
index 0000000..25926a7
--- /dev/null
+++ b/vere/pkg/noun/jets/d/by_all.c
@@ -0,0 +1,51 @@
+/// @file
+
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+static u3_noun
+_by_all(u3_noun a, u3j_site* sit_u)
+{
+ if ( u3_nul == a ) {
+ return c3y;
+ }
+ else {
+ u3_noun n_a, l_a, r_a;
+ u3x_trel(a, &n_a, &l_a, &r_a);
+
+ switch ( u3j_gate_slam(sit_u, u3k(u3t(n_a))) ) {
+ case c3y: break;
+ case c3n: return c3n;
+ default: return u3m_bail(c3__exit);
+ }
+
+ if ( c3n == _by_all(l_a, sit_u) ) {
+ return c3n;
+ }
+
+ return _by_all(r_a, sit_u);
+ }
+}
+
+u3_noun
+u3qdb_all(u3_noun a, u3_noun b)
+{
+ u3_noun pro;
+ u3j_site sit_u;
+
+ u3j_gate_prep(&sit_u, u3k(b));
+ pro = _by_all(a, &sit_u);
+ u3j_gate_lose(&sit_u);
+
+ return pro;
+}
+
+u3_noun
+u3wdb_all(u3_noun cor)
+{
+ u3_noun a, b;
+ u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
+ return u3qdb_all(a, b);
+}
diff --git a/vere/pkg/noun/jets/d/by_any.c b/vere/pkg/noun/jets/d/by_any.c
new file mode 100644
index 0000000..b81f32d
--- /dev/null
+++ b/vere/pkg/noun/jets/d/by_any.c
@@ -0,0 +1,51 @@
+/// @file
+
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+static u3_noun
+_by_any(u3_noun a, u3j_site* sit_u)
+{
+ if ( u3_nul == a ) {
+ return c3n;
+ }
+ else {
+ u3_noun n_a, l_a, r_a;
+ u3x_trel(a, &n_a, &l_a, &r_a);
+
+ switch ( u3j_gate_slam(sit_u, u3k(u3t(n_a))) ) {
+ case c3y: return c3y;
+ case c3n: break;
+ default: return u3m_bail(c3__exit);
+ }
+
+ if ( c3y == _by_any(l_a, sit_u) ) {
+ return c3y;
+ }
+
+ return _by_any(r_a, sit_u);
+ }
+}
+
+u3_noun
+u3qdb_any(u3_noun a, u3_noun b)
+{
+ u3_noun pro;
+ u3j_site sit_u;
+
+ u3j_gate_prep(&sit_u, u3k(b));
+ pro = _by_any(a, &sit_u);
+ u3j_gate_lose(&sit_u);
+
+ return pro;
+}
+
+u3_noun
+u3wdb_any(u3_noun cor)
+{
+ u3_noun a, b;
+ u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
+ return u3qdb_any(a, b);
+}
diff --git a/vere/pkg/noun/jets/d/by_apt.c b/vere/pkg/noun/jets/d/by_apt.c
new file mode 100644
index 0000000..66a6414
--- /dev/null
+++ b/vere/pkg/noun/jets/d/by_apt.c
@@ -0,0 +1,78 @@
+/// @file
+
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+static c3_o
+_by_apt(u3_noun a, u3_weak l, u3_weak r)
+{
+ if ( u3_nul == a ) {
+ return c3y;
+ }
+ else {
+ u3_noun p_n_a, l_a, r_a;
+ {
+ u3_noun n_a;
+ u3x_trel(a, &n_a, &l_a, &r_a);
+ p_n_a = u3h(n_a);
+ }
+
+ if ( u3_none != l ) {
+ if ( (c3n == u3qc_gor(p_n_a, l))
+ || (c3y == u3r_sing(p_n_a, l)) )
+ {
+ return c3n;
+ }
+ }
+
+ if ( u3_none != r ) {
+ if ( (c3n == u3qc_gor(r, p_n_a))
+ || (c3y == u3r_sing(r, p_n_a)) )
+ {
+ return c3n;
+ }
+ }
+
+ if ( u3_nul != l_a ) {
+ u3_noun p_n_l_a = u3h(u3h(l_a));
+
+ if ( (c3n == u3qc_mor(p_n_a, p_n_l_a))
+ || (c3y == u3r_sing(p_n_a, p_n_l_a)) )
+ {
+ return c3n;
+ }
+
+ if ( c3n == _by_apt(l_a, p_n_a, r) ) {
+ return c3n;
+ }
+ }
+
+ if ( u3_nul != r_a ) {
+ u3_noun p_n_r_a = u3h(u3h(r_a));
+
+ if ( (c3n == u3qc_mor(p_n_a, p_n_r_a))
+ || (c3y == u3r_sing(p_n_a, p_n_r_a)) )
+ {
+ return c3n;
+ }
+
+ return _by_apt(r_a, l, p_n_a);
+ }
+
+ return c3y;
+ }
+}
+
+u3_noun
+u3qdb_apt(u3_noun a)
+{
+ return _by_apt(a, u3_none, u3_none);
+}
+
+u3_noun
+u3wdb_apt(u3_noun cor)
+{
+ return u3qdb_apt(u3x_at(u3x_con_sam, cor));
+}
diff --git a/vere/pkg/noun/jets/d/by_bif.c b/vere/pkg/noun/jets/d/by_bif.c
new file mode 100644
index 0000000..0a2f23a
--- /dev/null
+++ b/vere/pkg/noun/jets/d/by_bif.c
@@ -0,0 +1,74 @@
+/// @file
+
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+/* internal functions
+*/
+static u3_noun
+_b_bif_putroot(u3_noun a,
+ u3_noun b)
+{
+ if ( u3_nul == a ) {
+ return u3nt(u3k(b), u3_nul, u3_nul);
+ }
+ else {
+ u3_noun n_a, l_a, r_a;
+ u3_noun p_n_a, q_n_a;
+ u3x_trel(a, &n_a, &l_a, &r_a);
+ u3x_cell(n_a, &p_n_a, &q_n_a);
+
+ if ( c3y == u3r_sing(b, p_n_a) ) {
+ return u3nt(u3k(b), u3k(l_a), u3k(r_a));
+ }
+ else {
+ u3_noun c, n_c, l_c, r_c;
+ u3_noun d;
+
+ if ( c3y == u3qc_gor(b, p_n_a) ) {
+ c = _b_bif_putroot(l_a, b);
+ u3r_trel(c, &n_c, &l_c, &r_c);
+ d = u3nt(u3k(n_c),
+ u3k(l_c),
+ u3nt(u3k(n_a), u3k(r_c), u3k(r_a))
+ );
+ u3z(c);
+ return d;
+ }
+ else {
+ c = _b_bif_putroot(r_a, b);
+ u3r_trel(c, &n_c, &l_c, &r_c);
+ d = u3nt(u3k(n_c),
+ u3nt(u3k(n_a), u3k(l_a), u3k(l_c)),
+ u3k(r_c)
+ );
+ u3z(c);
+ return d;
+ }
+ }
+ }
+}
+
+u3_noun
+u3wdb_bif(u3_noun cor)
+{
+ u3_noun a, b;
+ u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
+ return u3qdb_bif(a, b);
+}
+
+u3_noun
+u3qdb_bif(u3_noun a,
+ u3_noun b)
+{
+ u3_noun c, n_c, l_c, r_c;
+ u3_noun d;
+
+ c = _b_bif_putroot(a, b);
+ u3r_trel(c, &n_c, &l_c, &r_c);
+ d = u3nc(u3k(l_c), u3k(r_c));
+ u3z(c);
+ return d;
+}
diff --git a/vere/pkg/noun/jets/d/by_del.c b/vere/pkg/noun/jets/d/by_del.c
new file mode 100644
index 0000000..86ba416
--- /dev/null
+++ b/vere/pkg/noun/jets/d/by_del.c
@@ -0,0 +1,93 @@
+/// @file
+
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+static u3_noun
+_rebalance(u3_noun a)
+{
+ u3_noun n_a, l_a, r_a;
+ u3x_trel(a, &n_a, &l_a, &r_a);
+
+ if ( u3_nul == l_a) {
+ return u3k(r_a);
+ }
+ else if ( u3_nul == r_a) {
+ return u3k(l_a);
+ }
+ else {
+ u3_noun n_l_a, l_l_a, r_l_a;
+ u3_noun n_r_a, l_r_a, r_r_a;
+ u3x_trel(l_a, &n_l_a, &l_l_a, &r_l_a);
+ u3x_trel(r_a, &n_r_a, &l_r_a, &r_r_a);
+
+ if ( c3y == u3qc_mor(u3h(n_l_a), u3h(n_r_a)) ) {
+ u3_noun new_right = u3nt(u3k(n_a),
+ u3k(r_l_a),
+ u3k(r_a));
+
+ u3_noun ret = u3nt(u3k(n_l_a),
+ u3k(l_l_a),
+ _rebalance(new_right));
+ u3z(new_right);
+
+ return ret;
+ }
+ else {
+ u3_noun new_left = u3nt(u3k(n_a),
+ u3k(l_a),
+ u3k(l_r_a));
+
+ u3_noun ret = u3nt(u3k(n_r_a),
+ _rebalance(new_left),
+ u3k(r_r_a));
+ u3z(new_left);
+
+ return ret;
+ }
+ }
+}
+
+u3_noun
+u3qdb_del(u3_noun a,
+ u3_noun b)
+{
+ if ( u3_nul == a ) {
+ return u3_nul;
+ }
+ else {
+ u3_noun n_a, lr_a;
+ u3_noun pn_a;
+ u3x_cell(a, &n_a, &lr_a);
+ u3x_cell(n_a, &pn_a, 0);
+
+ if ( c3y == u3r_sing(pn_a, b) ) {
+ return _rebalance(a);
+ }
+ else {
+ u3_noun l_a, r_a;
+ u3x_cell(lr_a, &l_a, &r_a);
+
+ if ( c3y == u3qc_gor(b, pn_a) ) {
+ return u3nt(u3k(n_a),
+ u3qdb_del(l_a, b),
+ u3k(r_a));
+ }
+ else {
+ return u3nt(u3k(n_a),
+ u3k(l_a),
+ u3qdb_del(r_a, b));
+ }
+ }
+ }
+}
+
+u3_noun
+u3wdb_del(u3_noun cor)
+{
+ u3_noun a, b;
+ u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
+ return u3qdb_del(a, b);
+}
diff --git a/vere/pkg/noun/jets/d/by_dif.c b/vere/pkg/noun/jets/d/by_dif.c
new file mode 100644
index 0000000..44dcd1a
--- /dev/null
+++ b/vere/pkg/noun/jets/d/by_dif.c
@@ -0,0 +1,83 @@
+/// @file
+
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+/* internal functions
+*/
+
+/* RETAIN
+*/
+static u3_noun
+_b_dif_join(u3_noun d,
+ u3_noun e)
+{
+ if ( u3_nul == d ) {
+ return u3k(e);
+ }
+ else if ( u3_nul == e ) {
+ return u3k(d);
+ }
+ else {
+ u3_noun n_d, lr_d;
+ u3_noun n_e, lr_e;
+ u3x_cell(d, &n_d, &lr_d);
+ u3x_cell(e, &n_e, &lr_e);
+
+ if ( c3y == u3qc_mor(u3h(n_d), u3h(n_e)) ) {
+ u3_noun l_d, r_d;
+ u3x_cell(lr_d, &l_d, &r_d);
+
+ return u3nt(u3k(n_d),
+ u3k(l_d),
+ _b_dif_join(r_d, e));
+ }
+ else {
+ u3_noun l_e, r_e;
+ u3x_cell(lr_e, &l_e, &r_e);
+
+ return u3nt(u3k(n_e),
+ _b_dif_join(d, l_e),
+ u3k(r_e));
+ }
+ }
+}
+
+u3_noun
+u3wdb_dif(u3_noun cor)
+{
+ u3_noun a, b;
+ u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
+ return u3qdb_dif(a, b);
+}
+
+u3_noun
+u3qdb_dif(u3_noun a,
+ u3_noun b)
+{
+ if ( u3_nul == b ) {
+ return u3k(a);
+ }
+ else {
+ u3_noun n_b, p_n_b, q_n_b, l_b, r_b;
+ u3_noun c, l_c, r_c;
+ u3x_trel(b, &n_b, &l_b, &r_b);
+ u3x_cell(n_b, &p_n_b, &q_n_b);
+
+ c = u3qdb_bif(a, p_n_b);
+ u3x_cell(c, &l_c, &r_c);
+
+ u3_noun d = u3qdb_dif(l_c, l_b);
+ u3_noun e = u3qdb_dif(r_c, r_b);
+
+ u3z(c);
+
+ u3_noun pro = _b_dif_join(d, e);
+ u3z(d);
+ u3z(e);
+
+ return pro;
+ }
+}
diff --git a/vere/pkg/noun/jets/d/by_gas.c b/vere/pkg/noun/jets/d/by_gas.c
new file mode 100644
index 0000000..2da171d
--- /dev/null
+++ b/vere/pkg/noun/jets/d/by_gas.c
@@ -0,0 +1,44 @@
+/// @file
+
+#include "jets/k.h"
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+u3_noun
+u3qdb_gas(u3_noun a,
+ u3_noun b)
+{
+ if ( u3_nul == b ) {
+ return u3k(a);
+ }
+ else {
+ u3_noun i_b, t_b,
+ pi_b, qi_b;
+ u3x_cell(b, &i_b, &t_b);
+ u3x_cell(i_b, &pi_b, &qi_b);
+
+ u3_noun c = u3qdb_put(a, pi_b, qi_b);
+ u3_noun d = u3qdb_gas(c, t_b);
+ u3z(c);
+ return d;
+ }
+}
+
+u3_noun
+u3wdb_gas(u3_noun cor)
+{
+ u3_noun a, b;
+ u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
+ return u3qdb_gas(a, b);
+}
+
+u3_noun
+u3kdb_gas(u3_noun a,
+ u3_noun b)
+{
+ u3_noun c = u3qdb_gas(a, b);
+ u3z(a); u3z(b);
+ return c;
+}
diff --git a/vere/pkg/noun/jets/d/by_get.c b/vere/pkg/noun/jets/d/by_get.c
new file mode 100644
index 0000000..19e77b9
--- /dev/null
+++ b/vere/pkg/noun/jets/d/by_get.c
@@ -0,0 +1,63 @@
+/// @file
+
+#include "jets/k.h"
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+u3_noun
+u3qdb_get(u3_noun a,
+ u3_noun b)
+{
+ if ( u3_nul == a ) {
+ return u3_nul;
+ }
+ else {
+ u3_noun n_a, lr_a;
+ u3_noun pn_a, qn_a;
+ u3x_cell(a, &n_a, &lr_a);
+ u3x_cell(n_a, &pn_a, &qn_a);
+
+ if ( (c3y == u3r_sing(b, pn_a)) ) {
+ return u3nc(u3_nul, u3k(qn_a));
+ }
+ else {
+ return ( c3y == u3qc_gor(b, pn_a) ) ? u3qdb_get(u3h(lr_a), b)
+ : u3qdb_get(u3t(lr_a), b);
+ }
+ }
+}
+
+u3_noun
+u3wdb_get(u3_noun cor)
+{
+ u3_noun a, b;
+ u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
+ return u3qdb_get(a, b);
+}
+
+u3_weak
+u3kdb_get(u3_noun a,
+ u3_noun b)
+{
+ u3_noun c = u3qdb_get(a, b);
+ u3z(a); u3z(b);
+
+ if ( c3n == u3du(c) ) {
+ u3z(c);
+ return u3_none;
+ }
+ else {
+ u3_noun pro = u3k(u3t(c));
+ u3z(c);
+ return pro;
+ }
+}
+
+u3_noun
+u3kdb_got(u3_noun a,
+ u3_noun b)
+{
+ return u3x_good(u3kdb_get(a, b));
+}
diff --git a/vere/pkg/noun/jets/d/by_has.c b/vere/pkg/noun/jets/d/by_has.c
new file mode 100644
index 0000000..24bcb31
--- /dev/null
+++ b/vere/pkg/noun/jets/d/by_has.c
@@ -0,0 +1,47 @@
+/// @file
+
+#include "jets/k.h"
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+u3_noun
+u3qdb_has(u3_noun a,
+ u3_noun b)
+{
+ if ( u3_nul == a ) {
+ return c3n;
+ }
+ else {
+ u3_noun n_a, lr_a;
+ u3_noun pn_a;
+ u3x_cell(a, &n_a, &lr_a);
+ u3x_cell(n_a, &pn_a, 0);
+
+ if ( (c3y == u3r_sing(b, pn_a)) ) {
+ return c3y;
+ }
+ else {
+ return ( c3y == u3qc_gor(b, pn_a) ) ? u3qdb_has(u3h(lr_a), b)
+ : u3qdb_has(u3t(lr_a), b);
+ }
+ }
+}
+
+u3_noun
+u3wdb_has(u3_noun cor)
+{
+ u3_noun a, b;
+ u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
+ return u3qdb_has(a, b);
+}
+
+u3_noun
+u3kdb_has(u3_noun a,
+ u3_noun b)
+{
+ u3_noun c = u3qdb_has(a, b);
+ u3z(a); u3z(b);
+ return c;
+}
diff --git a/vere/pkg/noun/jets/d/by_int.c b/vere/pkg/noun/jets/d/by_int.c
new file mode 100644
index 0000000..5caa8aa
--- /dev/null
+++ b/vere/pkg/noun/jets/d/by_int.c
@@ -0,0 +1,72 @@
+/// @file
+
+#include "jets/k.h"
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+u3_noun
+u3qdb_int(u3_noun a, u3_noun b)
+{
+ if ( (u3_nul == a)
+ || (u3_nul == b) )
+ {
+ return u3_nul;
+ }
+ else {
+ u3_noun n_a, l_a, r_a;
+ u3_noun n_b, l_b, r_b;
+ u3_noun p_n_a, q_n_a;
+ u3_noun p_n_b, q_n_b;
+ u3x_trel(a, &n_a, &l_a, &r_a);
+ u3x_trel(b, &n_b, &l_b, &r_b);
+ u3x_cell(n_a, &p_n_a, &q_n_a);
+ u3x_cell(n_b, &p_n_b, &q_n_b);
+
+ if ( c3y == u3qc_mor(p_n_a, p_n_b) ) {
+ if ( c3y == u3r_sing(p_n_b, p_n_a) ) {
+ return u3nt(u3k(n_b), u3qdb_int(l_a, l_b), u3qdb_int(r_a, r_b));
+ }
+ else if ( c3y == u3qc_gor(p_n_b, p_n_a) ) {
+ u3_noun new_l_b = u3nt(u3k(n_b), u3k(l_b), u3_nul);
+ u3_noun new_a = u3qdb_int(l_a, new_l_b);
+
+ u3z(new_l_b);
+ return u3kdb_uni(new_a, u3qdb_int(a, r_b));
+ }
+ else {
+ u3_noun new_r_b = u3nt(u3k(n_b), u3_nul, u3k(r_b));
+ u3_noun new_a = u3qdb_int(r_a, new_r_b);
+
+ u3z(new_r_b);
+ return u3kdb_uni(new_a, u3qdb_int(a, l_b));
+ }
+ }
+ else if ( c3y == u3r_sing(p_n_a, p_n_b) ) {
+ return u3nt(u3k(n_b), u3qdb_int(l_a, l_b), u3qdb_int(r_a, r_b));
+ }
+ else if ( c3y == u3qc_gor(p_n_a, p_n_b) ) {
+ u3_noun new_l_a = u3nt(u3k(n_a), u3k(l_a), u3_nul);
+ u3_noun new_a = u3qdb_int(new_l_a, l_b);
+
+ u3z(new_l_a);
+ return u3kdb_uni(new_a, u3qdb_int(r_a, b));
+ }
+ else {
+ u3_noun new_r_a = u3nt(u3k(n_a), u3_nul, u3k(r_a));
+ u3_noun new_a = u3qdb_int(new_r_a, r_b);
+
+ u3z(new_r_a);
+ return u3kdb_uni(new_a, u3qdb_int(l_a, b));
+ }
+ }
+}
+
+u3_noun
+u3wdb_int(u3_noun cor)
+{
+ u3_noun a, b;
+ u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
+ return u3qdb_int(a, b);
+}
diff --git a/vere/pkg/noun/jets/d/by_jab.c b/vere/pkg/noun/jets/d/by_jab.c
new file mode 100644
index 0000000..597e454
--- /dev/null
+++ b/vere/pkg/noun/jets/d/by_jab.c
@@ -0,0 +1,63 @@
+/// @file
+
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+u3_noun
+u3kdb_jab(u3_noun a,
+ u3_noun key,
+ u3_noun fun)
+ {
+ if ( u3_nul == a ) {
+ return u3m_bail(c3__exit);
+ }
+ else {
+ u3_noun n_a, lr_a;
+ u3_noun pn_a, qn_a;
+ u3_noun pro;
+ u3x_cell(a, &n_a, &lr_a);
+ u3x_cell(n_a, &pn_a, &qn_a);
+
+ if ( (c3y == u3r_sing(key, pn_a)) ) {
+ u3_noun value = u3n_slam_on(fun, u3k(qn_a));
+ pro = u3nc(u3nc(u3k(u3h(u3h(a))), value), u3k(u3t(a)));
+ u3z(a); u3z(key);
+ return pro;
+ }
+ else {
+ u3_noun l_a, r_a;
+ u3x_cell(lr_a, &l_a, &r_a);
+
+ u3k(n_a); u3k(l_a); u3k(r_a);
+ if ( c3y == u3qc_gor(key, pn_a) ) {
+ pro = u3nt(n_a, u3kdb_jab(l_a, key, fun), r_a);
+ }
+ else {
+ pro = u3nt(n_a, l_a, u3kdb_jab(r_a, key, fun));
+ }
+ u3z(a);
+ return pro;
+ }
+ }
+}
+
+u3_noun
+u3qdb_jab(u3_noun a,
+ u3_noun key,
+ u3_noun fun)
+{
+ return u3kdb_jab(u3k(a), u3k(key), u3k(fun));
+}
+
+u3_noun
+u3wdb_jab(u3_noun cor)
+{
+ u3_noun a, key, fun;
+ u3x_mean(cor, u3x_sam_2, &key,
+ u3x_sam_3, &fun,
+ u3x_con_sam, &a, 0);
+
+ return u3qdb_jab(a, key, fun);
+}
diff --git a/vere/pkg/noun/jets/d/by_key.c b/vere/pkg/noun/jets/d/by_key.c
new file mode 100644
index 0000000..b4f8a09
--- /dev/null
+++ b/vere/pkg/noun/jets/d/by_key.c
@@ -0,0 +1,42 @@
+/// @file
+
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+// [a] is RETAINED, [set] is TRANSFERRED
+//
+static u3_noun
+_by_key(u3_noun a, u3_noun set)
+{
+ if ( u3_nul == a ) {
+ return set;
+ }
+ else {
+ u3_noun n_a, l_a, r_a;
+ u3x_trel(a, &n_a, &l_a, &r_a);
+
+ {
+ u3_noun new = u3qdi_put(set, u3h(n_a));
+ u3z(set);
+ set = new;
+ }
+
+ set = _by_key(l_a, set);
+
+ return _by_key(r_a, set);
+ }
+}
+
+u3_noun
+u3qdb_key(u3_noun a)
+{
+ return _by_key(a, u3_nul);
+}
+
+u3_noun
+u3wdb_key(u3_noun cor)
+{
+ return u3qdb_key(u3x_at(u3x_con_sam, cor));
+}
diff --git a/vere/pkg/noun/jets/d/by_put.c b/vere/pkg/noun/jets/d/by_put.c
new file mode 100644
index 0000000..ad0e7ec
--- /dev/null
+++ b/vere/pkg/noun/jets/d/by_put.c
@@ -0,0 +1,102 @@
+/// @file
+
+#include "jets/k.h"
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+u3_noun
+u3qdb_put(u3_noun a,
+ u3_noun b,
+ u3_noun c)
+{
+ if ( u3_nul == a ) {
+ return u3nt(u3nc(u3k(b), u3k(c)),
+ u3_nul,
+ u3_nul);
+ }
+ else {
+ u3_noun n_a, l_a, r_a;
+ u3_noun pn_a, qn_a;
+ u3x_trel(a, &n_a, &l_a, &r_a);
+ u3x_cell(n_a, &pn_a, &qn_a);
+
+ if ( c3y == u3r_sing(pn_a, b) ) {
+ if ( c3y == u3r_sing(qn_a, c) ) {
+ return u3k(a);
+ }
+ else {
+ return u3nt(u3nc(u3k(b), u3k(c)),
+ u3k(l_a),
+ u3k(r_a));
+ }
+ }
+ else {
+ u3_noun d, n_d, l_d, r_d;
+
+ if ( c3y == u3qc_gor(b, pn_a) ) {
+ d = u3qdb_put(l_a, b, c);
+
+ if ( c3y == u3qc_mor(pn_a, u3h(u3h(d))) ) {
+ return u3nt(u3k(n_a),
+ d,
+ u3k(r_a));
+ }
+ else {
+ u3r_trel(d, &n_d, &l_d, &r_d);
+
+ u3_noun e = u3nt(u3k(n_d),
+ u3k(l_d),
+ u3nt(u3k(n_a),
+ u3k(r_d),
+ u3k(r_a)));
+
+ u3z(d);
+ return e;
+ }
+ }
+ else {
+ d = u3qdb_put(r_a, b, c);
+
+ if ( c3y == u3qc_mor(pn_a, u3h(u3h(d))) ) {
+ return u3nt(u3k(n_a),
+ u3k(l_a),
+ d);
+ }
+ else {
+ u3r_trel(d, &n_d, &l_d, &r_d);
+
+ u3_noun e = u3nt(u3k(n_d),
+ u3nt(u3k(n_a),
+ u3k(l_a),
+ u3k(l_d)),
+ u3k(r_d));
+
+ u3z(d);
+ return e;
+ }
+ }
+ }
+ }
+}
+
+u3_noun
+u3wdb_put(u3_noun cor)
+{
+ u3_noun a, b, c;
+ u3x_mean(cor, u3x_sam_2, &b,
+ u3x_sam_3, &c,
+ u3x_con_sam, &a, 0);
+ return u3qdb_put(a, b, c);
+}
+
+u3_noun
+u3kdb_put(u3_noun a,
+ u3_noun b,
+ u3_noun c)
+{
+ u3_noun pro = u3qdb_put(a, b, c);
+ u3z(a); u3z(b); u3z(c);
+ return pro;
+}
diff --git a/vere/pkg/noun/jets/d/by_run.c b/vere/pkg/noun/jets/d/by_run.c
new file mode 100644
index 0000000..491a32c
--- /dev/null
+++ b/vere/pkg/noun/jets/d/by_run.c
@@ -0,0 +1,53 @@
+/// @file
+
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+static u3_noun
+_by_run(u3_noun a, u3j_site* sit_u)
+{
+ if ( u3_nul == a ) {
+ return u3_nul;
+ }
+ else {
+ u3_noun n_a, l_a, r_a;
+ u3_noun p_n_a, q_n_a;
+ u3x_trel(a, &n_a, &l_a, &r_a);
+ u3x_cell(n_a, &p_n_a, &q_n_a);
+
+ u3k(p_n_a);
+ u3k(q_n_a);
+ u3k(l_a);
+ u3k(r_a);
+
+ u3_noun pro = u3nt(u3nc(p_n_a, u3j_gate_slam(sit_u, q_n_a)),
+ _by_run(l_a, sit_u),
+ _by_run(r_a, sit_u));
+
+ u3z(a);
+ return pro;
+ }
+}
+
+u3_noun
+u3qdb_run(u3_noun a, u3_noun b)
+{
+ u3_noun pro;
+ u3j_site sit_u;
+
+ u3j_gate_prep(&sit_u, u3k(b));
+ pro = _by_run(u3k(a), &sit_u);
+ u3j_gate_lose(&sit_u);
+
+ return pro;
+}
+
+u3_noun
+u3wdb_run(u3_noun cor)
+{
+ u3_noun a, b;
+ u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
+ return u3qdb_run(a, b);
+}
diff --git a/vere/pkg/noun/jets/d/by_uni.c b/vere/pkg/noun/jets/d/by_uni.c
new file mode 100644
index 0000000..6bdcd4c
--- /dev/null
+++ b/vere/pkg/noun/jets/d/by_uni.c
@@ -0,0 +1,101 @@
+/// @file
+
+#include "jets/k.h"
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+u3_noun
+u3qdb_uni(u3_noun a, u3_noun b)
+{
+ if ( u3_nul == b ) {
+ return u3k(a);
+ }
+ else if ( u3_nul == a ) {
+ return u3k(b);
+ }
+ else {
+ u3_noun n_a, l_a, r_a;
+ u3_noun n_b, l_b, r_b;
+ u3_noun p_n_a, q_n_a;
+ u3_noun p_n_b, q_n_b;
+ u3x_trel(a, &n_a, &l_a, &r_a);
+ u3x_trel(b, &n_b, &l_b, &r_b);
+ u3x_cell(n_a, &p_n_a, &q_n_a);
+ u3x_cell(n_b, &p_n_b, &q_n_b);
+
+ if ( c3y == u3r_sing(p_n_a, p_n_b) ) {
+ return u3nt(u3k(n_b),
+ u3qdb_uni(l_a, l_b),
+ u3qdb_uni(r_a, r_b));
+ }
+ else if ( c3y == u3qc_mor(p_n_a, p_n_b) ) {
+ u3_noun new_a, old_b;
+
+ if ( c3y == u3qc_gor(p_n_b, p_n_a) ) {
+ u3_noun new_b = u3nt(u3k(n_b), u3k(l_b), u3_nul);
+ u3_noun new_la = u3qdb_uni(l_a, new_b);
+ u3z(new_b);
+
+ new_a = u3nt(u3k(n_a), new_la, u3k(r_a));
+ old_b = r_b;
+ }
+ else {
+ u3_noun new_b = u3nt(u3k(n_b), u3_nul, u3k(r_b));
+ u3_noun new_ra = u3qdb_uni(r_a, new_b);
+ u3z(new_b);
+
+ new_a = u3nt(u3k(n_a), u3k(l_a), new_ra);
+ old_b = l_b;
+ }
+
+ {
+ u3_noun pro = u3qdb_uni(new_a, old_b);
+ u3z(new_a);
+ return pro;
+ }
+ }
+ else {
+ u3_noun old_a, new_b;
+
+ if ( c3y == u3qc_gor(p_n_a, p_n_b) ) {
+ u3_noun new_a = u3nt(u3k(n_a), u3k(l_a), u3_nul);
+ u3_noun new_lb = u3qdb_uni(new_a, l_b);
+ u3z(new_a);
+
+ new_b = u3nt(u3k(n_b), new_lb, u3k(r_b));
+ old_a = r_a;
+ }
+ else {
+ u3_noun new_a = u3nt(u3k(n_a), u3_nul, u3k(r_a));
+ u3_noun new_rb = u3qdb_uni(new_a, r_b);
+ u3z(new_a);
+
+ new_b = u3nt(u3k(n_b), u3k(l_b), new_rb);
+ old_a = l_a;
+ }
+
+ {
+ u3_noun pro = u3qdb_uni(old_a, new_b);
+ u3z(new_b);
+ return pro;
+ }
+ }
+ }
+}
+
+u3_noun
+u3wdb_uni(u3_noun cor)
+{
+ u3_noun a, b;
+ u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
+ return u3qdb_uni(a, b);
+}
+
+u3_noun
+u3kdb_uni(u3_noun a, u3_noun b)
+{
+ u3_noun pro = u3qdb_uni(a, b);
+ u3z(a); u3z(b);
+ return pro;
+}
diff --git a/vere/pkg/noun/jets/d/by_urn.c b/vere/pkg/noun/jets/d/by_urn.c
new file mode 100644
index 0000000..5c82876
--- /dev/null
+++ b/vere/pkg/noun/jets/d/by_urn.c
@@ -0,0 +1,52 @@
+/// @file
+
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+static u3_noun
+_by_urn(u3_noun a, u3j_site* sit_u)
+{
+ if ( u3_nul == a ) {
+ return u3_nul;
+ }
+ else {
+ u3_noun n_a, l_a, r_a, p_n_a;
+ u3x_trel(a, &n_a, &l_a, &r_a);
+ p_n_a = u3h(n_a);
+
+ u3k(p_n_a);
+ u3k(n_a);
+ u3k(l_a);
+ u3k(r_a);
+
+ u3_noun pro = u3nt(u3nc(p_n_a, u3j_gate_slam(sit_u, n_a)),
+ _by_urn(l_a, sit_u),
+ _by_urn(r_a, sit_u));
+
+ u3z(a);
+ return pro;
+ }
+}
+
+u3_noun
+u3qdb_urn(u3_noun a, u3_noun b)
+{
+ u3_noun pro;
+ u3j_site sit_u;
+
+ u3j_gate_prep(&sit_u, u3k(b));
+ pro = _by_urn(u3k(a), &sit_u);
+ u3j_gate_lose(&sit_u);
+
+ return pro;
+}
+
+u3_noun
+u3wdb_urn(u3_noun cor)
+{
+ u3_noun a, b;
+ u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
+ return u3qdb_urn(a, b);
+}
diff --git a/vere/pkg/noun/jets/d/in_apt.c b/vere/pkg/noun/jets/d/in_apt.c
new file mode 100644
index 0000000..93e7b48
--- /dev/null
+++ b/vere/pkg/noun/jets/d/in_apt.c
@@ -0,0 +1,121 @@
+/// @file
+
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+static c3_o
+_in_apt_140(u3_noun a, u3_weak l, u3_weak r)
+{
+ if ( u3_nul == a ) {
+ return c3y;
+ }
+ else {
+ u3_noun n_a, l_a, r_a;
+ u3x_trel(a, &n_a, &l_a, &r_a);
+
+ if ( (u3_none != l) && (c3n == u3qc_gor(n_a, l)) ) {
+ return c3n;
+ }
+
+ if ( (u3_none != r) && (c3n == u3qc_gor(r, n_a)) ) {
+ return c3n;
+ }
+
+ if ( u3_nul != l_a ) {
+ if ( c3n == u3qc_mor(n_a, u3h(l_a)) ) {
+ return c3n;
+ }
+
+ if ( c3n == _in_apt_140(l_a, n_a, r) ) {
+ return c3n;
+ }
+ }
+
+ if ( u3_nul != r_a ) {
+ if ( c3n == u3qc_mor(n_a, u3h(r_a)) ) {
+ return c3n;
+ }
+
+ return _in_apt_140(r_a, l, n_a);
+ }
+
+ return c3y;
+ }
+}
+
+u3_noun
+u3qdi_apt_140(u3_noun a)
+{
+ return _in_apt_140(a, u3_none, u3_none);
+}
+
+u3_noun
+u3wdi_apt_140(u3_noun cor)
+{
+ return u3qdi_apt_140(u3x_at(u3x_con_sam, cor));
+}
+
+
+static c3_o
+_in_apt(u3_noun a, u3_weak l, u3_weak r)
+{
+ if ( u3_nul == a ) {
+ return c3y;
+ }
+ else {
+ u3_noun n_a, l_a, r_a;
+ u3x_trel(a, &n_a, &l_a, &r_a);
+
+ if ( (u3_none != l) &&
+ ( (c3y == u3r_sing(n_a, l)) || (c3n == u3qc_gor(n_a, l)) )) {
+ return c3n;
+ }
+
+ if ( (u3_none != r) &&
+ ( (c3y == u3r_sing(r, n_a)) || (c3n == u3qc_gor(r, n_a)) )) {
+ return c3n;
+ }
+
+ if ( u3_nul != l_a ) {
+ if ( c3y == u3r_sing(n_a, u3h(l_a)) ) {
+ return c3n;
+ }
+
+ if ( c3n == u3qc_mor(n_a, u3h(l_a)) ) {
+ return c3n;
+ }
+
+ if ( c3n == _in_apt(l_a, n_a, r) ) {
+ return c3n;
+ }
+ }
+
+ if ( u3_nul != r_a ) {
+ if ( c3y == u3r_sing(n_a, u3h(r_a)) ) {
+ return c3n;
+ }
+
+ if ( c3n == u3qc_mor(n_a, u3h(r_a)) ) {
+ return c3n;
+ }
+
+ return _in_apt(r_a, l, n_a);
+ }
+
+ return c3y;
+ }
+}
+
+u3_noun
+u3qdi_apt(u3_noun a)
+{
+ return _in_apt(a, u3_none, u3_none);
+}
+
+u3_noun
+u3wdi_apt(u3_noun cor)
+{
+ return u3qdi_apt(u3x_at(u3x_con_sam, cor));
+}
diff --git a/vere/pkg/noun/jets/d/in_bif.c b/vere/pkg/noun/jets/d/in_bif.c
new file mode 100644
index 0000000..76596b1
--- /dev/null
+++ b/vere/pkg/noun/jets/d/in_bif.c
@@ -0,0 +1,72 @@
+/// @file
+
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+/* internal functions
+*/
+static u3_noun
+_i_bif_putroot(u3_noun a,
+ u3_noun b)
+{
+ if ( u3_nul == a) {
+ return u3nt(u3k(b), u3_nul, u3_nul);
+ }
+ else {
+ u3_noun n_a, lr_a;
+ u3x_cell(a, &n_a, &lr_a);
+
+ if ( c3y == u3r_sing(b, n_a) ) {
+ return u3k(a);
+ }
+ else {
+ u3_noun c, n_c, l_c, r_c;
+ u3_noun d;
+ u3_noun l_a, r_a;
+ u3x_cell(lr_a, &l_a, &r_a);
+
+ if ( c3y == u3qc_gor(b, n_a) ) {
+ c = _i_bif_putroot(l_a, b);
+ u3r_trel(c, &n_c, &l_c, &r_c);
+ d = u3nt(u3k(n_c),
+ u3k(l_c),
+ u3nt(u3k(n_a), u3k(r_c), u3k(r_a)));
+ u3z(c);
+ return d;
+ }
+ else {
+ c = _i_bif_putroot(r_a, b);
+ u3r_trel(c, &n_c, &l_c, &r_c);
+ d = u3nt(u3k(n_c),
+ u3nt(u3k(n_a), u3k(l_a), u3k(l_c)),
+ u3k(r_c));
+ u3z(c);
+ return d;
+ }
+ }
+ }
+}
+
+u3_noun
+u3wdi_bif(u3_noun cor)
+{
+ u3_noun a, b;
+ u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
+ return u3qdi_bif(a, b);
+}
+
+u3_noun
+u3qdi_bif(u3_noun a,
+ u3_noun b)
+{
+ u3_noun c, n_c, l_c, r_c;
+ u3_noun d;
+
+ c = _i_bif_putroot(a, b);
+ u3r_trel(c, &n_c, &l_c, &r_c);
+ d = u3nc(u3k(l_c), u3k(r_c));
+ u3z(c);
+ return d;
+}
diff --git a/vere/pkg/noun/jets/d/in_del.c b/vere/pkg/noun/jets/d/in_del.c
new file mode 100644
index 0000000..5871a45
--- /dev/null
+++ b/vere/pkg/noun/jets/d/in_del.c
@@ -0,0 +1,88 @@
+/// @file
+
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+static u3_noun
+_rebalance(u3_noun a)
+{
+ u3_noun l_a, n_a, r_a;
+ u3x_trel(a, &n_a, &l_a, &r_a);
+
+ if ( u3_nul == l_a) {
+ return u3k(r_a);
+ }
+ else if ( u3_nul == r_a) {
+ return u3k(l_a);
+ }
+ else {
+ u3_noun n_l_a, l_l_a, r_l_a;
+ u3_noun n_r_a, l_r_a, r_r_a;
+ u3x_trel(l_a, &n_l_a, &l_l_a, &r_l_a);
+ u3x_trel(r_a, &n_r_a, &l_r_a, &r_r_a);
+
+ if ( c3y == u3qc_mor(n_l_a, n_r_a) ) {
+ u3_noun new_right = u3nt(u3k(n_a),
+ u3k(r_l_a),
+ u3k(r_a));
+
+ u3_noun ret = u3nt(u3k(n_l_a),
+ u3k(l_l_a),
+ _rebalance(new_right));
+ u3z(new_right);
+
+ return ret;
+ }
+ else {
+ u3_noun new_left = u3nt(u3k(n_a),
+ u3k(l_a),
+ u3k(l_r_a));
+
+ u3_noun ret = u3nt(u3k(n_r_a),
+ _rebalance(new_left),
+ u3k(r_r_a));
+ u3z(new_left);
+
+ return ret;
+ }
+ }
+}
+
+u3_noun
+u3qdi_del(u3_noun a,
+ u3_noun b)
+{
+ if ( u3_nul == a ) {
+ return u3_nul;
+ }
+ else {
+ u3_noun l_a, n_a, r_a;
+ u3x_trel(a, &n_a, &l_a, &r_a);
+
+ if ( c3y == u3r_sing(n_a, b) ) {
+ return _rebalance(a);
+ }
+ else {
+ if ( c3y == u3qc_gor(b, n_a) ) {
+ return u3nt(u3k(n_a),
+ u3qdi_del(l_a, b),
+ u3k(r_a));
+ }
+ else {
+ return u3nt(u3k(n_a),
+ u3k(l_a),
+ u3qdi_del(r_a, b));
+ }
+ }
+ }
+}
+
+u3_noun
+u3wdi_del(u3_noun cor)
+{
+ u3_noun a, b;
+ u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
+ return u3qdi_del(a, b);
+}
diff --git a/vere/pkg/noun/jets/d/in_dif.c b/vere/pkg/noun/jets/d/in_dif.c
new file mode 100644
index 0000000..bff391d
--- /dev/null
+++ b/vere/pkg/noun/jets/d/in_dif.c
@@ -0,0 +1,82 @@
+/// @file
+
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+/* internal functions
+*/
+
+/* RETAIN
+*/
+static u3_noun
+_i_dif_join(u3_noun d,
+ u3_noun e)
+{
+ if ( u3_nul == d ) {
+ return u3k(e);
+ }
+ else if ( u3_nul == e ) {
+ return u3k(d);
+ }
+ else {
+ u3_noun n_d, lr_d;
+ u3_noun n_e, lr_e;
+ u3x_cell(d, &n_d, &lr_d);
+ u3x_cell(e, &n_e, &lr_e);
+
+ if ( c3y == u3qc_mor(n_d, n_e) ) {
+ u3_noun l_d, r_d;
+ u3x_cell(lr_d, &l_d, &r_d);
+
+ return u3nt(u3k(n_d),
+ u3k(l_d),
+ _i_dif_join(r_d, e));
+ }
+ else {
+ u3_noun l_e, r_e;
+ u3x_cell(lr_e, &l_e, &r_e);
+
+ return u3nt(u3k(n_e),
+ _i_dif_join(d, l_e),
+ u3k(r_e));
+ }
+ }
+}
+
+u3_noun
+u3wdi_dif(u3_noun cor)
+{
+ u3_noun a, b;
+ u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
+ return u3qdi_dif(a, b);
+}
+
+u3_noun
+u3qdi_dif(u3_noun a,
+ u3_noun b)
+{
+ if ( u3_nul == b ) {
+ return u3k(a);
+ }
+ else {
+ u3_noun n_b, l_b, r_b;
+ u3_noun c, l_c, r_c;
+ u3_noun d, e;
+
+ u3x_trel(b, &n_b, &l_b, &r_b);
+ c = u3qdi_bif(a, n_b);
+ u3x_cell(c, &l_c, &r_c);
+
+ d = u3qdi_dif(l_c, l_b);
+ e = u3qdi_dif(r_c, r_b);
+ u3z(c);
+
+ u3_noun pro = _i_dif_join(d, e);
+ u3z(d);
+ u3z(e);
+
+ return pro;
+ }
+}
diff --git a/vere/pkg/noun/jets/d/in_gas.c b/vere/pkg/noun/jets/d/in_gas.c
new file mode 100644
index 0000000..888e070
--- /dev/null
+++ b/vere/pkg/noun/jets/d/in_gas.c
@@ -0,0 +1,42 @@
+/// @file
+
+#include "jets/k.h"
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+u3_noun
+u3qdi_gas(u3_noun a,
+ u3_noun b)
+{
+ if ( u3_nul == b ) {
+ return u3k(a);
+ }
+ else {
+ u3_noun i_b, t_b;
+ u3x_cell(b, &i_b, &t_b);
+
+ u3_noun c = u3qdi_put(a, i_b);
+ u3_noun d = u3qdi_gas(c, t_b);
+ u3z(c);
+ return d;
+ }
+}
+
+u3_noun
+u3wdi_gas(u3_noun cor)
+{
+ u3_noun a, b;
+ u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
+ return u3qdi_gas(a, b);
+}
+
+u3_noun
+u3kdi_gas(u3_noun a,
+ u3_noun b)
+{
+ u3_noun c = u3qdi_gas(a, b);
+ u3z(a); u3z(b);
+ return c;
+}
diff --git a/vere/pkg/noun/jets/d/in_has.c b/vere/pkg/noun/jets/d/in_has.c
new file mode 100644
index 0000000..ea6fb5f
--- /dev/null
+++ b/vere/pkg/noun/jets/d/in_has.c
@@ -0,0 +1,45 @@
+/// @file
+
+#include "jets/k.h"
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+u3_noun
+u3qdi_has(u3_noun a,
+ u3_noun b)
+{
+ if ( u3_nul == a ) {
+ return c3n;
+ }
+ else {
+ u3_noun n_a, lr_a;
+ u3x_cell(a, &n_a, &lr_a);
+
+ if ( (c3y == u3r_sing(b, n_a)) ) {
+ return c3y;
+ }
+ else {
+ return ( c3y == u3qc_gor(b, n_a) ) ? u3qdi_has(u3h(lr_a), b)
+ : u3qdi_has(u3t(lr_a), b);
+ }
+ }
+}
+
+u3_noun
+u3wdi_has(u3_noun cor)
+{
+ u3_noun a, b;
+ u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
+ return u3qdi_has(a, b);
+}
+
+u3_noun
+u3kdi_has(u3_noun a,
+ u3_noun b)
+{
+ u3_noun c = u3qdi_has(a, b);
+ u3z(a); u3z(b);
+ return c;
+}
diff --git a/vere/pkg/noun/jets/d/in_int.c b/vere/pkg/noun/jets/d/in_int.c
new file mode 100644
index 0000000..fc5bfaa
--- /dev/null
+++ b/vere/pkg/noun/jets/d/in_int.c
@@ -0,0 +1,65 @@
+/// @file
+
+#include "jets/k.h"
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+u3_noun
+u3qdi_int(u3_noun a, u3_noun b)
+{
+ if ( (u3_nul == a)
+ || (u3_nul == b) )
+ {
+ return u3_nul;
+ }
+ else {
+ u3_noun n_a, l_a, r_a;
+ u3_noun n_b, l_b, r_b;
+
+ {
+ u3_noun lr_a, lr_b;
+ u3x_cell(a, &n_a, &lr_a);
+ u3x_cell(b, &n_b, &lr_b);
+
+ if ( c3y == u3qc_mor(n_a, n_b) ) {
+ u3_noun c;
+ c = a; a = b; b = c;
+ c = n_a; n_a = n_b; n_b = c;
+ c = lr_a; lr_a = lr_b; lr_b = c;
+ }
+
+ u3x_cell(lr_a, &l_a, &r_a);
+ u3x_cell(lr_b, &l_b, &r_b);
+ }
+
+ if ( c3y == u3r_sing(n_b, n_a) ) {
+ return u3nt(u3k(n_a),
+ u3qdi_int(l_a, l_b),
+ u3qdi_int(r_a, r_b));
+ }
+ else if ( c3y == u3qc_gor(n_b, n_a) ) {
+ u3_noun new_l_b = u3nt(u3k(n_b), u3k(l_b), u3_nul);
+ u3_noun new_a = u3qdi_int(l_a, new_l_b);
+
+ u3z(new_l_b);
+ return u3kdi_uni(new_a, u3qdi_int(a, r_b));
+ }
+ else {
+ u3_noun new_r_b = u3nt(u3k(n_b), u3_nul, u3k(r_b));
+ u3_noun new_a = u3qdi_int(r_a, new_r_b);
+
+ u3z(new_r_b);
+ return u3kdi_uni(new_a, u3qdi_int(a, l_b));
+ }
+ }
+}
+
+u3_noun
+u3wdi_int(u3_noun cor)
+{
+ u3_noun a, b;
+ u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
+ return u3qdi_int(a, b);
+}
diff --git a/vere/pkg/noun/jets/d/in_put.c b/vere/pkg/noun/jets/d/in_put.c
new file mode 100644
index 0000000..909d48e
--- /dev/null
+++ b/vere/pkg/noun/jets/d/in_put.c
@@ -0,0 +1,87 @@
+/// @file
+
+#include "jets/k.h"
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+u3_noun
+u3qdi_put(u3_noun a,
+ u3_noun b)
+{
+ if ( u3_nul == a ) {
+ return u3nt(u3k(b), u3_nul, u3_nul);
+ }
+ else {
+ u3_noun n_a, lr_a;
+ u3x_cell(a, &n_a, &lr_a);
+
+ if ( c3y == u3r_sing(n_a, b) ) {
+ return u3k(a);
+ }
+ else {
+ u3_noun c, n_c, l_c, r_c;
+ u3_noun l_a, r_a;
+ u3x_cell(lr_a, &l_a, &r_a);
+
+ if ( c3y == u3qc_gor(b, n_a) ) {
+ c = u3qdi_put(l_a, b);
+
+ if ( c3y == u3qc_mor(n_a, u3h(c)) ) {
+ return u3nt(u3k(n_a),
+ c,
+ u3k(r_a));
+ }
+ else {
+ u3r_trel(c, &n_c, &l_c, &r_c);
+ {
+ u3_noun d = u3nt(u3k(n_c),
+ u3k(l_c),
+ u3nt(u3k(n_a), u3k(r_c), u3k(r_a)));
+
+ u3z(c);
+ return d;
+ }
+ }
+ }
+ else {
+ c = u3qdi_put(r_a, b);
+
+ if ( c3y == u3qc_mor(n_a, u3h(c)) ) {
+ return u3nt(u3k(n_a),
+ u3k(l_a),
+ c);
+ }
+ else {
+ u3r_trel(c, &n_c, &l_c, &r_c);
+ {
+ u3_noun d = u3nt(u3k(n_c),
+ u3nt(u3k(n_a), u3k(l_a), u3k(l_c)),
+ u3k(r_c));
+
+ u3z(c);
+ return d;
+ }
+ }
+ }
+ }
+ }
+}
+
+u3_noun
+u3wdi_put(u3_noun cor)
+{
+ u3_noun a, b;
+ u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
+ return u3qdi_put(a, b);
+}
+
+u3_noun
+u3kdi_put(u3_noun a,
+ u3_noun b)
+{
+ u3_noun pro = u3qdi_put(a, b);
+ u3z(a); u3z(b);
+ return pro;
+}
diff --git a/vere/pkg/noun/jets/d/in_rep.c b/vere/pkg/noun/jets/d/in_rep.c
new file mode 100644
index 0000000..fafdad5
--- /dev/null
+++ b/vere/pkg/noun/jets/d/in_rep.c
@@ -0,0 +1,52 @@
+/// @file
+
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+// [a] and [out] are TRANSFERRED
+//
+static void
+_in_rep(u3_noun a, u3j_site* sit_u, u3_noun* out)
+{
+ if ( u3_nul == a ) {
+ return;
+ }
+ else {
+ u3_noun n_a, l_a, r_a;
+ u3x_trel(a, &n_a, &l_a, &r_a);
+
+ u3k(n_a);
+ u3k(l_a);
+ u3k(r_a);
+
+ *out = u3j_gate_slam(sit_u, u3nc(n_a, *out));
+
+ _in_rep(l_a, sit_u, out);
+ _in_rep(r_a, sit_u, out);
+
+ u3z(a);
+ }
+}
+
+u3_noun
+u3qdi_rep(u3_noun a, u3_noun b)
+{
+ u3_noun out = u3k(u3x_at(u3x_sam_3, b));
+ u3j_site sit_u;
+
+ u3j_gate_prep(&sit_u, u3k(b));
+ _in_rep(u3k(a), &sit_u, &out);
+ u3j_gate_lose(&sit_u);
+
+ return out;
+}
+
+u3_noun
+u3wdi_rep(u3_noun cor)
+{
+ u3_noun a, b;
+ u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
+ return u3qdi_rep(a, b);
+}
diff --git a/vere/pkg/noun/jets/d/in_run.c b/vere/pkg/noun/jets/d/in_run.c
new file mode 100644
index 0000000..2216a5c
--- /dev/null
+++ b/vere/pkg/noun/jets/d/in_run.c
@@ -0,0 +1,59 @@
+/// @file
+
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+// [a] and [out] are TRANSFERRED
+//
+static void
+_in_run(u3_noun a, u3j_site* sit_u, u3_noun* out)
+{
+ if ( u3_nul == a ) {
+ return;
+ }
+ else {
+ u3_noun n_a, l_a, r_a;
+ u3x_trel(a, &n_a, &l_a, &r_a);
+
+ u3k(n_a);
+ u3k(l_a);
+ u3k(r_a);
+
+ {
+ u3_noun new = u3j_gate_slam(sit_u, n_a);
+ u3_noun pro = u3qdi_put(*out, new);
+
+ u3z(new);
+ u3z(*out);
+ *out = pro;
+ }
+
+ _in_run(l_a, sit_u, out);
+ _in_run(r_a, sit_u, out);
+
+ u3z(a);
+ }
+}
+
+u3_noun
+u3qdi_run(u3_noun a, u3_noun b)
+{
+ u3_noun out = u3_nul;
+ u3j_site sit_u;
+
+ u3j_gate_prep(&sit_u, u3k(b));
+ _in_run(u3k(a), &sit_u, &out);
+ u3j_gate_lose(&sit_u);
+
+ return out;
+}
+
+u3_noun
+u3wdi_run(u3_noun cor)
+{
+ u3_noun a, b;
+ u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
+ return u3qdi_run(a, b);
+}
diff --git a/vere/pkg/noun/jets/d/in_tap.c b/vere/pkg/noun/jets/d/in_tap.c
new file mode 100644
index 0000000..a9af4f1
--- /dev/null
+++ b/vere/pkg/noun/jets/d/in_tap.c
@@ -0,0 +1,46 @@
+/// @file
+
+#include "jets/k.h"
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+static u3_noun
+_tap_in(u3_noun a,
+ u3_noun b)
+{
+ if ( u3_nul == a ) {
+ return b;
+ }
+ else {
+ u3_noun n_a, l_a, r_a;
+ u3x_trel(a, &n_a, &l_a, &r_a);
+
+ return _tap_in(r_a,
+ u3nc(u3k(n_a),
+ _tap_in(l_a, b)));
+ }
+}
+
+u3_noun
+u3qdi_tap(u3_noun a)
+{
+ return _tap_in(a, u3_nul);
+}
+
+u3_noun
+u3wdi_tap(u3_noun cor)
+{
+ u3_noun a;
+ u3x_mean(cor, u3x_con_sam, &a, 0);
+ return u3qdi_tap(a);
+}
+
+u3_noun
+u3kdi_tap(u3_noun a)
+{
+ u3_noun b = u3qdi_tap(a);
+ u3z(a);
+ return b;
+}
diff --git a/vere/pkg/noun/jets/d/in_uni.c b/vere/pkg/noun/jets/d/in_uni.c
new file mode 100644
index 0000000..504ddcb
--- /dev/null
+++ b/vere/pkg/noun/jets/d/in_uni.c
@@ -0,0 +1,98 @@
+/// @file
+
+#include "jets/k.h"
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+/* internal functions
+*/
+static u3_noun
+_in_uni(u3_noun a, u3_noun b)
+{
+ if ( u3_nul == a ) {
+ return u3k(b);
+ }
+ else if ( u3_nul == b ) {
+ return u3k(a);
+ }
+ else {
+ u3_noun n_a, l_a, r_a,
+ n_b, l_b, r_b,
+ neb, sub, naw, pro;
+ u3x_trel(a, &n_a, &l_a, &r_a);
+ u3x_trel(b, &n_b, &l_b, &r_b);
+
+ if ( c3n == u3qc_mor(n_a, n_b) ) {
+ if ( c3y == u3r_sing(n_a, n_b) ) {
+ return u3nt(u3k(n_b), _in_uni(l_a, l_b), _in_uni(r_a, r_b));
+ }
+ else if ( c3y == u3qc_gor(n_a, n_b) ) {
+ naw = u3nt(u3k(n_a), u3k(l_a), u3_nul);
+ sub = _in_uni(naw, l_b);
+ neb = u3nt(u3k(n_b), sub, u3k(r_b));
+ pro = _in_uni(r_a, neb);
+ u3z(naw); u3z(neb);
+ return pro;
+ }
+ else {
+ naw = u3nt(u3k(n_a), u3_nul, u3k(r_a));
+ sub = _in_uni(naw, r_b);
+ neb = u3nt(u3k(n_b), u3k(l_b), sub);
+ pro = _in_uni(l_a, neb);
+ u3z(naw); u3z(neb);
+ return pro;
+ }
+ }
+ else if ( c3y == u3r_sing(n_b, n_a) ) {
+ return u3nt(u3k(n_b), _in_uni(l_a, l_b), _in_uni(r_a, r_b));
+ }
+ else if ( c3y == u3qc_gor(n_b, n_a) ) {
+ neb = u3nt(u3k(n_b), u3k(l_b), u3_nul);
+ sub = _in_uni(l_a, neb);
+ naw = u3nt(u3k(n_a), sub, u3k(r_a));
+ pro = _in_uni(naw, r_b);
+ u3z(neb); u3z(naw);
+ return pro;
+ }
+ else {
+ neb = u3nt(u3k(n_b), u3_nul, u3k(r_b));
+ sub = _in_uni(r_a, neb);
+ naw = u3nt(u3k(n_a), u3k(l_a), sub);
+ pro = _in_uni(naw, l_b);
+ u3z(neb); u3z(naw);
+ return pro;
+ }
+ }
+}
+
+u3_noun
+u3kdi_uni(u3_noun a,
+ u3_noun b)
+{
+ u3_noun c = u3qdi_uni(a, b);
+ u3z(a); u3z(b);
+ return c;
+}
+
+u3_noun
+u3qdi_uni(u3_noun a,
+ u3_noun b)
+{
+ if ( c3y == u3r_sing(a, b) ) {
+ return u3k(a);
+ }
+ else {
+ return _in_uni(a, b);
+ }
+}
+
+u3_noun
+u3wdi_uni(u3_noun cor)
+{
+ u3_noun a, b;
+ u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
+ return u3qdi_uni(a, b);
+}
+
diff --git a/vere/pkg/noun/jets/d/in_wyt.c b/vere/pkg/noun/jets/d/in_wyt.c
new file mode 100644
index 0000000..2ae72fa
--- /dev/null
+++ b/vere/pkg/noun/jets/d/in_wyt.c
@@ -0,0 +1,35 @@
+/// @file
+
+#include "jets/q.h"
+#include "jets/w.h"
+
+#include "noun.h"
+
+STATIC_ASSERT( (UINT32_MAX > u3a_cells),
+ "width precision" );
+
+static c3_w
+_wyt_in(u3_noun a)
+{
+ if ( u3_nul == a ) {
+ return 0;
+ }
+ else {
+ u3_noun l_a, r_a;
+ u3x_trel(a, 0, &l_a, &r_a);
+
+ return 1 + _wyt_in(l_a) + _wyt_in(r_a);
+ }
+}
+
+u3_noun
+u3qdi_wyt(u3_noun a)
+{
+ return u3i_word(_wyt_in(a));
+}
+
+u3_noun
+u3wdi_wyt(u3_noun cor)
+{
+ return u3qdi_wyt(u3x_at(u3x_con_2, cor));
+}