+}
+
+struct ao_scheme_atom *
+ao_scheme_string_to_atom(struct ao_scheme_string *string)
+{
+ struct ao_scheme_atom *atom = ao_scheme_atom_find(string->val);
+
+ if (atom)
+ return atom;
+ ao_scheme_string_stash(0, string);
+ atom = ao_scheme_alloc(name_size(string->val));
+ string = ao_scheme_string_fetch(0);
+ ao_scheme_atom_init(atom, string->val);
+ return atom;
+}
+
+struct ao_scheme_atom *
+ao_scheme_atom_intern(char *name)
+{
+ struct ao_scheme_atom *atom = ao_scheme_atom_find(name);
+ if (atom)
+ return atom;
+
+ atom = ao_scheme_alloc(name_size(name));
+ ao_scheme_atom_init(atom, name);