+ strcpy(r->val, a->val);
+ return r;
+}
+
+struct ao_scheme_string *
+ao_scheme_string_make(char *a)
+{
+ struct ao_scheme_string *r;
+
+ r = ao_scheme_string_alloc(strlen(a));
+ if (!r)
+ return NULL;
+ strcpy(r->val, a);
+ return r;
+}
+
+struct ao_scheme_string *
+ao_scheme_atom_to_string(struct ao_scheme_atom *a)
+{
+ int alen = strlen(a->name);
+ struct ao_scheme_string *r;
+
+ ao_scheme_poly_stash(0, ao_scheme_atom_poly(a));
+ r = ao_scheme_string_alloc(alen);
+ a = ao_scheme_poly_atom(ao_scheme_poly_fetch(0));
+ if (!r)
+ return NULL;
+ strcpy(r->val, a->name);