parent utils
object data

eval
    .initialize();
.

method unparse
    arg data;
    var str, element, association, pos;

    switch (type(data)) {
        case 'integer:
            return tostr(data);
        case 'string:
            return toliteral(data);
        case 'symbol:
            return toliteral(data);
        case 'error:
            return toliteral(data);
        case 'buffer:
            return toliteral(data);
        case 'dbref:
            if (valid(data))
                return data.name_str();
            else
                return toliteral(data);
        case 'list:
            if (!data)
                return "[]";
            str = "[";
            for element in (sublist(data, 1, listlen(data) - 1)) {
                str = str + $data.unparse(element);
                str = str + ", ";
            }
            str = str + $data.unparse(data[listlen(data)]);
            return str + "]";
        case 'dictionary:
            if (!data)
                return "#[]";
            str = "#[";
            for association in (data) {
                str = str + $data.unparse(association);
                str = str + ", ";
            }
            return substr(str, 1, strlen(str) - 2) + "]";
        case 'frob:
            return data.unparse();
    }
.