ifclass StringTree1 static void addToStringTree(StringTree1 tree, L tok) { if (empty(tok)) { tree.leaf = true; ret; } S s = first(tok); StringTree1 t = tree.getOrAdd(s); addToStringTree(t, dropFirst(tok)); } endif ifclass StringTree2 static void addToStringTree(StringTree2 tree, L tok, A leafValue) { if (empty(tok)) { tree.leafValue = leafValue; ret; } S s = first(tok); StringTree2 t = tree.getOrAdd(s); addToStringTree(t, dropFirst(tok)); } endif