parent $libraries object $data var $root dbref 'data var $root child_index 0 var $root fertile 0 var $root manager $data var $root owned [$data] var $root owners [$data] var $root writable [] var $root readable ['parameters, 'methods, 'code] var $root inited 1 method unparse arg data, [full]; 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 (full) return $object.get_name(data, 'namef, ['xref]); else return $object.get_name(data, 'dbref); 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(); } . method verify_type arg value, type; var elem, type_elem, ok_flag; // returns true if type(value) is type, or in the case // of lists and dicts it checks the elements // // If type is a list or dict, the elements it contains are possible types for value // for example: .verify_value([['foo], 1],['integer, 'list, ['symbol]]) => 1 // To indicate that you don't care what the elements of a dict or list are, // simply use 'list or 'dictionary. if (type(value) == type) return 1; if ((type(type) in ['dictionary, 'list]) && (type(type) == type(value))) { for elem in (value) { ok_flag = 0; for type_elem in (type) { if (.verify_type(elem, type_elem)) { ok_flag = 1; break; } if (!ok_flag) return 0; } } return 1; } // value is not of type, or values elements are not of @type, or etc return 0; .