<NME> web-vm.js
<BEF> var require = function (file, cwd) {
    var resolved = require.resolve(file, cwd || '/');
    var mod = require.modules[resolved];
    if (!mod) throw new Error(
        'Failed to resolve module ' + file + ', tried ' + resolved
    );
    var res = mod._cached ? mod._cached : mod();
    return res;
}

require.paths = [];
require.modules = {};
require.extensions = [".js",".coffee"];

require._core = {
    'assert': true,
    'events': true,
    'fs': true,
    'path': true,
    'vm': true
};

require.resolve = (function () {
    return function (x, cwd) {
        if (!cwd) cwd = '/';
        
        if (require._core[x]) return x;
        var path = require.modules.path();
        cwd = path.resolve('/', cwd);
        var y = cwd || '/';
        
        if (x.match(/^(?:\.\.?\/|\/)/)) {
            var m = loadAsFileSync(path.resolve(y, x))
                || loadAsDirectorySync(path.resolve(y, x));
            if (m) return m;
        }
        
        var n = loadNodeModulesSync(x, y);
        if (n) return n;
        
        throw new Error("Cannot find module '" + x + "'");
        
        function loadAsFileSync (x) {
            if (require.modules[x]) {
                return x;
            }
            
            for (var i = 0; i < require.extensions.length; i++) {
                var ext = require.extensions[i];
                if (require.modules[x + ext]) return x + ext;
            }
        }
        
        function loadAsDirectorySync (x) {
            x = x.replace(/\/+$/, '');
            var pkgfile = x + '/package.json';
            if (require.modules[pkgfile]) {
                var pkg = require.modules[pkgfile]();
                var b = pkg.browserify;
                if (typeof b === 'object' && b.main) {
                    var m = loadAsFileSync(path.resolve(x, b.main));
                    if (m) return m;
                }
                else if (typeof b === 'string') {
                    var m = loadAsFileSync(path.resolve(x, b));
                    if (m) return m;
                }
                else if (pkg.main) {
                    var m = loadAsFileSync(path.resolve(x, pkg.main));
                    if (m) return m;
                }
            }
            
            return loadAsFileSync(x + '/index');
        }
        
        function loadNodeModulesSync (x, start) {
            var dirs = nodeModulesPathsSync(start);
            for (var i = 0; i < dirs.length; i++) {
                var dir = dirs[i];
                var m = loadAsFileSync(dir + '/' + x);
                if (m) return m;
                var n = loadAsDirectorySync(dir + '/' + x);
                if (n) return n;
            }
            
            var m = loadAsFileSync(x);
            if (m) return m;
        }
        
        function nodeModulesPathsSync (start) {
            var parts;
            if (start === '/') parts = [ '' ];
            else parts = path.normalize(start).split('/');
            
            var dirs = [];
            for (var i = parts.length - 1; i >= 0; i--) {
                if (parts[i] === 'node_modules') continue;
                var dir = parts.slice(0, i + 1).join('/') + '/node_modules';
                dirs.push(dir);
            }
            
            return dirs;
        }
    };
})();

require.alias = function (from, to) {
    var path = require.modules.path();
    var res = null;
    try {
        res = require.resolve(from + '/package.json', '/');
    }
    catch (err) {
        res = require.resolve(from, '/');
    }
    var basedir = path.dirname(res);
    
    var keys = (Object.keys || function (obj) {
        var res = [];
        for (var key in obj) res.push(key)
        return res;
    })(require.modules);
    
    for (var i = 0; i < keys.length; i++) {
        var key = keys[i];
        if (key.slice(0, basedir.length + 1) === basedir + '/') {
            var f = key.slice(basedir.length);
            require.modules[to + f] = require.modules[basedir + f];
        }
        else if (key === basedir) {
            require.modules[to] = require.modules[basedir];
        }
    }
};

require.define = function (filename, fn) {
    var dirname = require._core[filename]
        ? ''
        : require.modules.path().dirname(filename)
    ;
    
    var require_ = function (file) {
        return require(file, dirname)
    };
    require_.resolve = function (name) {
        return require.resolve(name, dirname);
    };
    require_.modules = require.modules;
    require_.define = require.define;
    var module_ = { exports : {} };
    
    require.modules[filename] = function () {
        require.modules[filename]._cached = module_.exports;
        fn.call(
            module_.exports,
            require_,
            module_,
            module_.exports,
            dirname,
            filename
        );
        require.modules[filename]._cached = module_.exports;
        return module_.exports;
    };
};

if (typeof process === 'undefined') process = {};

if (!process.nextTick) process.nextTick = (function () {
    var queue = [];
    var canPost = typeof window !== 'undefined'
        && window.postMessage && window.addEventListener
    ;
    
    if (canPost) {
        window.addEventListener('message', function (ev) {
            if (ev.source === window && ev.data === 'browserify-tick') {
                ev.stopPropagation();
                if (queue.length > 0) {
                    var fn = queue.shift();
                    fn();
                }
            }
        }, true);
    }
    
    return function (fn) {
        if (canPost) {
            queue.push(fn);
            window.postMessage('browserify-tick', '*');
        }
        else setTimeout(fn, 0);
    };
})();

if (!process.title) process.title = 'browser';

if (!process.binding) process.binding = function (name) {
    if (name === 'evals') return require('vm')
    else throw new Error('No such module')
};

if (!process.cwd) process.cwd = function () { return '.' };

require.define("path", function (require, module, exports, __dirname, __filename) {
function filter (xs, fn) {
    var res = [];
    for (var i = 0; i < xs.length; i++) {
        if (fn(xs[i], i, xs)) res.push(xs[i]);
    }
    return res;
}

// resolves . and .. elements in a path array with directory names there
// must be no slashes, empty elements, or device names (c:\) in the array
// (so also no leading and trailing slashes - it does not distinguish
// relative and absolute paths)
function normalizeArray(parts, allowAboveRoot) {
  // if the path tries to go above the root, `up` ends up > 0
  var up = 0;
  for (var i = parts.length; i >= 0; i--) {
    var last = parts[i];
    if (last == '.') {
      parts.splice(i, 1);
    } else if (last === '..') {
      parts.splice(i, 1);
      up++;
    } else if (up) {
      parts.splice(i, 1);
      up--;
    }
  }

  // if the path is allowed to go above the root, restore leading ..s
  if (allowAboveRoot) {
    for (; up--; up) {
      parts.unshift('..');
    }
  }

  return parts;
}

// Regex to split a filename into [*, dir, basename, ext]
// posix version
var splitPathRe = /^(.+\/(?!$)|\/)?((?:.+?)?(\.[^.]*)?)$/;

// path.resolve([from ...], to)
// posix version
exports.resolve = function() {
var resolvedPath = '',
    resolvedAbsolute = false;

for (var i = arguments.length; i >= -1 && !resolvedAbsolute; i--) {
  var path = (i >= 0)
      ? arguments[i]
      : process.cwd();

  // Skip empty and invalid entries
  if (typeof path !== 'string' || !path) {
    continue;
  }

  resolvedPath = path + '/' + resolvedPath;
  resolvedAbsolute = path.charAt(0) === '/';
}

// At this point the path should be resolved to a full absolute path, but
// handle relative paths to be safe (might happen when process.cwd() fails)

// Normalize the path
resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {
    return !!p;
  }), !resolvedAbsolute).join('/');

  return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
};

// path.normalize(path)
// posix version
exports.normalize = function(path) {
var isAbsolute = path.charAt(0) === '/',
    trailingSlash = path.slice(-1) === '/';

// Normalize the path
path = normalizeArray(filter(path.split('/'), function(p) {
    return !!p;
  }), !isAbsolute).join('/');

  if (!path && !isAbsolute) {
    path = '.';
  }
  if (path && trailingSlash) {
    path += '/';
  }
  
  return (isAbsolute ? '/' : '') + path;
};


// posix version
exports.join = function() {
  var paths = Array.prototype.slice.call(arguments, 0);
  return exports.normalize(filter(paths, function(p, index) {
    return p && typeof p === 'string';
  }).join('/'));
};


exports.dirname = function(path) {
  var dir = splitPathRe.exec(path)[1] || '';
  var isWindows = false;
  if (!dir) {
    // No dirname
    return '.';
  } else if (dir.length === 1 ||
      (isWindows && dir.length <= 3 && dir.charAt(1) === ':')) {
    // It is just a slash or a drive letter with a slash
    return dir;
  } else {
    // It is a full dirname, strip trailing slash
    return dir.substring(0, dir.length - 1);
  }
};


exports.basename = function(path, ext) {
  var f = splitPathRe.exec(path)[2] || '';
  // TODO: make this comparison case-insensitive on windows?
  if (ext && f.substr(-1 * ext.length) === ext) {
    f = f.substr(0, f.length - ext.length);
  }
  return f;
};


exports.extname = function(path) {
  return splitPathRe.exec(path)[3] || '';
};

});

require.define("/compiler.js", function (require, module, exports, __dirname, __filename) {
var __args = process.argv.slice(2);var list_dash_union = (function(lst1,lst2){
return list_dash_append(lst1,fold((function(el,acc){
return (function() {if(list_dash_find(lst1,el)) {return acc;
} else {return cons(el,acc);
}})()
;
}),_emptylst,lst2));
});
var list_dash_difference = (function(lst1,lst2){
return fold((function(el,acc){
return (function() {if(list_dash_find(lst2,el)) {return acc;
} else {return cons(el,acc);
}})()
;
}),_emptylst,lst1);
});
var true_p_ = (function(x){
return x;
});
var false_p_ = (function(x){
return not(x);
});
var self_dash_evaluating_p_ = literal_p_;
var variable_p_ = symbol_p_;
var quoted_p_ = (function(expr){
return eq_p_(car(expr),string_dash__gt_symbol("quote"));
});
var assignment_p_ = (function(expr){
return eq_p_(car(expr),string_dash__gt_symbol("set_excl_"));
});
var definition_p_ = (function(expr){
return eq_p_(car(expr),string_dash__gt_symbol("define"));
});
var if_p_ = (function(expr){
return eq_p_(car(expr),string_dash__gt_symbol("if"));
});
var lambda_p_ = (function(expr){
return eq_p_(car(expr),string_dash__gt_symbol("lambda"));
});
var begin_p_ = (function(expr){
return eq_p_(car(expr),string_dash__gt_symbol("begin"));
});
var application_p_ = list_p_;
var text_dash_of_dash_quotation = (function(expr){
return cadr(expr);
});
var assignment_dash_variable = cadr;
var assignment_dash_value = caddr;
var make_dash_lambda = (function(args,body){
return cons(string_dash__gt_symbol("lambda"),cons(args,body));
});
var definition_dash_variable = (function(expr){
return (function() {if(symbol_p_(cadr(expr))) {return cadr(expr);
} else {return caadr(expr);
}})()
;
});
var definition_dash_value = (function(expr){
return (function() {if(symbol_p_(cadr(expr))) {return caddr(expr);
} else {return make_dash_lambda(cdadr(expr),cddr(expr));
}})()
;
});
var if_dash_predicate = cadr;
var if_dash_consequent = caddr;
var if_dash_alternative = (function(exp){
return (function() {if(not(null_p_(cdddr(exp)))) {return car(cdddr(exp));
} else {return false;
}})()
;
});
var first_dash_exp = car;
var rest_dash_exps = cdr;
var last_dash_exp_p_ = (function(exp){
return null_p_(cdr(exp));
});
var lambda_dash_parameters = cadr;
var lambda_dash_body = cddr;
var begin_dash_actions = cdr;
var operator = car;
var operands = cdr;
var label_dash_counter = 0;
var new_dash_label_dash_counter = (function() {label_dash_counter = (label_dash_counter + 1);
return label_dash_counter;
});
var make_dash_label = (function(name){
return string_dash__gt_symbol(str(name,new_dash_label_dash_counter()));
});
var always_dash_should_dash_break = false;
var should_dash_break = false;
var breakpoint = (function(exp){
return (function() {if((always_dash_should_dash_break || should_dash_break)) {return ((function() {should_dash_break = false;
return list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("exp"),list(string_dash__gt_symbol("const"),exp)),list(string_dash__gt_symbol("break")));
}))();
} else {return list(list(string_dash__gt_symbol("nop")));
}})()
;
});
var make_dash_instruction_dash_sequence = (function(needs,modifies,statements){
return list(needs,modifies,statements);
});
var empty_dash_instruction_dash_sequence = (function() {return make_dash_instruction_dash_sequence(_emptylst,_emptylst,_emptylst);
});
var registers_dash_needed = (function(s){
return (function() {if(symbol_p_(s)) {return _emptylst;
} else {return car(s);
}})()
;
});
var registers_dash_modified = (function(s){
return (function() {if(symbol_p_(s)) {return _emptylst;
} else {return cadr(s);
}})()
;
});
var statements = (function(s){
return (function() {if(symbol_p_(s)) {return list(s);
} else {return caddr(s);
}})()
;
});
var needs_dash_register_p_ = (function(seq,reg){
return list_dash_find(registers_dash_needed(seq),reg);
});
var modifies_dash_register_p_ = (function(seq,reg){
return list_dash_find(registers_dash_modified(seq),reg);
});
var append_dash_instruction_dash_sequences = (function(){
var seqs = vector_dash__gt_list(Array.prototype.slice.call(arguments, 0));
var append_dash_2_dash_sequences = (function(seq1,seq2){
return make_dash_instruction_dash_sequence(list_dash_union(registers_dash_needed(seq1),list_dash_difference(registers_dash_needed(seq2),registers_dash_modified(seq1))),list_dash_union(registers_dash_modified(seq1),registers_dash_modified(seq2)),list_dash_append(statements(seq1),statements(seq2)));
});
var append_dash_seq_dash_list = (function(seqs){
return (function() {if(null_p_(seqs)) {return empty_dash_instruction_dash_sequence();
} else {return append_dash_2_dash_sequences(car(seqs),append_dash_seq_dash_list(cdr(seqs)));
}})()
;
});
return append_dash_seq_dash_list(seqs);
});
var preserving = (function(regs,seq1,seq2){
return (function() {if(null_p_(regs)) {return append_dash_instruction_dash_sequences(seq1,seq2);
} else {return ((function() {var o1 = (function(first_dash_reg){
return (function() {if((needs_dash_register_p_(seq2,first_dash_reg) && modifies_dash_register_p_(seq1,first_dash_reg))) {return preserving(cdr(regs),make_dash_instruction_dash_sequence(list_dash_union(list(first_dash_reg),registers_dash_needed(seq1)),list_dash_difference(registers_dash_modified(seq1),list(first_dash_reg)),list_dash_append(list(list(string_dash__gt_symbol("save"),first_dash_reg)),list_dash_append(statements(seq1),list(list(string_dash__gt_symbol("restore"),first_dash_reg))))),seq2);
} else {return preserving(cdr(regs),seq1,seq2);
}})()
;
});
var o2 = car(regs);
return o1(o2);
}))();
}})()
;
});
var tack_dash_on_dash_instruction_dash_sequence = (function(seq,body_dash_seq){
return make_dash_instruction_dash_sequence(registers_dash_needed(seq),registers_dash_modified(seq),list_dash_append(statements(seq),statements(body_dash_seq)));
});
var parallel_dash_instruction_dash_sequences = (function(seq1,seq2){
return make_dash_instruction_dash_sequence(list_dash_union(registers_dash_needed(seq1),registers_dash_needed(seq2)),list_dash_union(registers_dash_modified(seq1),registers_dash_modified(seq2)),list_dash_append(statements(seq1),statements(seq2)));
});
var make_dash_frame = (function(vars,vals){
return zip(vars,vals);
});
var enclosing_dash_environment = cdr;
var first_dash_frame = car;
var last_dash_frame = (function(env){
return car(reverse(env));
});
var empty_dash_environment = _emptylst;
var extend_dash_environment = (function(vars,vals,base_dash_env){
return (function() {if(_eq__eq_(length(vars),length(vals))) {return cons(make_dash_frame(vars,vals),base_dash_env);
} else {return (function() {if((length(vars) < length(vals))) {throw("too many arguments supplied");
} else {throw("too few arguments supplied");
}})()
;
}})()
;
});
var find_dash_frame_dash_with_dash_var = (function(varr,env){
return (function() {if(_eq_(env,empty_dash_environment)) {return false;
} else {return ((function() {var o3 = (function(frame){
return (function() {if(list_dash_find(keys(frame),varr)) {return frame;
} else {return find_dash_frame_dash_with_dash_var(varr,enclosing_dash_environment(env));
}})()
;
});
var o4 = first_dash_frame(env);
return o3(o4);
}))();
}})()
;
});
var lookup_dash_variable_dash_value = (function(varr,env){
return ((function() {var o5 = (function(frame){
return (function() {if(frame) {return dict_dash_ref(frame,varr);
} else {throw(str("unbound variable: ",varr));
}})()
;
});
var o6 = find_dash_frame_dash_with_dash_var(varr,env);
return o5(o6);
}))();
});
var set_dash_variable_dash_value_excl_ = (function(varr,val,env){
return ((function() {var o7 = (function(frame){
return (function() {if(frame) {return dict_dash_put_excl_(frame,varr,val);
} else {throw(str("unbound variable: ",varr));
}})()
;
});
var o8 = find_dash_frame_dash_with_dash_var(varr,env);
return o7(o8);
}))();
});
var define_dash_variable_excl_ = (function(varr,val,env){
return dict_dash_put_excl_(first_dash_frame(env),varr,val);
});
var setup_dash_environment = (function() {return extend_dash_environment(primitive_dash_procedure_dash_names(),primitive_dash_procedure_dash_objects(),empty_dash_environment);
});
var install_dash_primitives = (function(procs){
return ((function() {var o9 = (function(bottom){
return for_dash_each((function(key){
return dict_dash_put_excl_(bottom,key,make_dash_primitive_dash_procedure(dict_dash_ref(procs,key)));
}),keys(procs));
});
var o10 = last_dash_frame(global_dash_environment);
return o9(o10);
}))();
});
var primitive_dash_procedures = dict(string_dash__gt_symbol("car"),car,string_dash__gt_symbol("cdr"),cdr,string_dash__gt_symbol("cons"),cons,string_dash__gt_symbol("list"),list,string_dash__gt_symbol("null_p_"),null_p_,string_dash__gt_symbol("pp"),pp,string_dash__gt_symbol("+"),(function(x,y){
return (x + y);
}),string_dash__gt_symbol("_dash_"),(function(x,y){
return (x - y);
}),string_dash__gt_symbol("*"),(function(x,y){
return (x * y);
}),string_dash__gt_symbol("_gt_"),(function(x,y){
return (x > y);
}),string_dash__gt_symbol("_lt_"),(function(x,y){
return (x < y);
}),string_dash__gt_symbol("_eq__eq_"),_eq__eq_);
var primitive_dash_procedure_dash_names = (function() {return keys(primitive_dash_procedures);
});
var primitive_dash_procedure_dash_objects = (function() {return map(make_dash_primitive_dash_procedure,vals(primitive_dash_procedures));
});
var make_dash_primitive_dash_procedure = (function(proc){
return list(string_dash__gt_symbol("primitive"),proc);
});
var primitive_dash_procedure_p_ = (function(proc){
return eq_p_(car(proc),string_dash__gt_symbol("primitive"));
});
var primitive_dash_implementation = cadr;
var apply_dash_primitive_dash_procedure = (function(proc,args){
return apply(primitive_dash_implementation(proc),args);
});
var make_dash_compiled_dash_procedure = (function(entry,env){
return list(string_dash__gt_symbol("compiled_dash_procedure"),entry,env);
});
var compiled_dash_procedure_p_ = (function(proc){
return eq_p_(car(proc),string_dash__gt_symbol("compiled_dash_procedure"));
});
var compiled_dash_procedure_dash_entry = cadr;
var compiled_dash_procedure_dash_env = caddr;
var compile_dash_linkage = (function(linkage){
return (function() {if(eq_p_(linkage,string_dash__gt_symbol("return"))) {return ((function() {return make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("continue")),_emptylst,list(list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("continue")))));
}))();
} else {return (function() {if(eq_p_(linkage,string_dash__gt_symbol("next"))) {return ((function() {return empty_dash_instruction_dash_sequence();
}))();
} else {return ((function() {return make_dash_instruction_dash_sequence(_emptylst,_emptylst,list(list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("label"),linkage))));
}))();
}})()
;
}})()
;
});
var end_dash_with_dash_linkage = (function(linkage,instruction_dash_sequence){
return preserving(list(string_dash__gt_symbol("continue")),instruction_dash_sequence,compile_dash_linkage(linkage));
});
var compile_dash_self_dash_evaluating = (function(exp,target,linkage){
return end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(_emptylst,list(target),list_dash_append(((function() {var o12 = (function(o11){
return (function() {if(vector_p_(o11)) {return vector_dash__gt_list(o11);
} else {return o11;
}})()
;
});
var o13 = breakpoint(exp);
return o12(o13);
}))(),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("const"),exp))))));
});
var compile_dash_quoted = (function(exp,target,linkage){
return end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(_emptylst,list(target),list_dash_append(((function() {var o15 = (function(o14){
return (function() {if(vector_p_(o14)) {return vector_dash__gt_list(o14);
} else {return o14;
}})()
;
});
var o16 = breakpoint(exp);
return o15(o16);
}))(),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("const"),text_dash_of_dash_quotation(exp)))))));
});
var compile_dash_variable = (function(exp,target,linkage){
return end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env")),list(target),list_dash_append(((function() {var o18 = (function(o17){
return (function() {if(vector_p_(o17)) {return vector_dash__gt_list(o17);
} else {return o17;
}})()
;
});
var o19 = breakpoint(exp);
return o18(o19);
}))(),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("op"),string_dash__gt_symbol("lookup_dash_variable_dash_value")),list(string_dash__gt_symbol("const"),exp),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env")))))));
});
var compile_dash_assignment = (function(exp,target,linkage){
return ((function() {var o20 = (function(_var_,value_dash_code){
return end_dash_with_dash_linkage(linkage,preserving(list(string_dash__gt_symbol("env")),value_dash_code,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("val")),list(target),list_dash_append(((function() {var o24 = (function(o23){
return (function() {if(vector_p_(o23)) {return vector_dash__gt_list(o23);
} else {return o23;
}})()
;
});
var o25 = breakpoint(exp);
return o24(o25);
}))(),list(list(string_dash__gt_symbol("perform"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("set_dash_variable_dash_value_excl_")),list(string_dash__gt_symbol("const"),_var_),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env"))),list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("const"),string_dash__gt_symbol("ok"))))))));
});
var o21 = assignment_dash_variable(exp);
var o22 = compile(assignment_dash_value(exp),string_dash__gt_symbol("val"),string_dash__gt_symbol("next"));
return o20(o21,o22);
}))();
});
var compile_dash_definition = (function(exp,target,linkage){
return ((function() {var o26 = (function(_var_,value_dash_code){
return end_dash_with_dash_linkage(linkage,preserving(list(string_dash__gt_symbol("env")),value_dash_code,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("val")),list(target),list_dash_append(((function() {var o30 = (function(o29){
return (function() {if(vector_p_(o29)) {return vector_dash__gt_list(o29);
} else {return o29;
}})()
;
});
var o31 = breakpoint(exp);
return o30(o31);
}))(),list(list(string_dash__gt_symbol("perform"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("define_dash_variable_excl_")),list(string_dash__gt_symbol("const"),_var_),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env"))),list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("const"),string_dash__gt_symbol("ok"))))))));
});
var o27 = definition_dash_variable(exp);
var o28 = compile(definition_dash_value(exp),string_dash__gt_symbol("val"),string_dash__gt_symbol("next"));
return o26(o27,o28);
}))();
});
var compile_dash_if = (function(exp,target,linkage){
return ((function() {var o32 = (function(t_dash_branch,f_dash_branch,after_dash_if,consequent_dash_linkage,p_dash_code,c_dash_code,a_dash_code){
return preserving(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("continue")),p_dash_code,append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("val")),_emptylst,list_dash_append(((function() {var o41 = (function(o40){
return (function() {if(vector_p_(o40)) {return vector_dash__gt_list(o40);
} else {return o40;
}})()
;
});
var o42 = breakpoint(exp);
return o41(o42);
}))(),list(list(string_dash__gt_symbol("test"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("false_p_")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val"))),list(string_dash__gt_symbol("branch"),list(string_dash__gt_symbol("label"),f_dash_branch))))),parallel_dash_instruction_dash_sequences(append_dash_instruction_dash_sequences(t_dash_branch,c_dash_code),append_dash_instruction_dash_sequences(f_dash_branch,a_dash_code)),after_dash_if));
});
var o33 = make_dash_label(string_dash__gt_symbol("true_dash_branch"));
var o34 = make_dash_label(string_dash__gt_symbol("false_dash_branch"));
var o35 = make_dash_label(string_dash__gt_symbol("after_dash_if"));
var o36 = (function() {if(eq_p_(linkage,string_dash__gt_symbol("next"))) {return o35;
} else {return linkage;
}})()
;
var o37 = compile(if_dash_predicate(exp),string_dash__gt_symbol("val"),string_dash__gt_symbol("next"));
var o38 = compile(if_dash_consequent(exp),target,o36);
var o39 = compile(if_dash_alternative(exp),target,linkage);
return o32(o33,o34,o35,o36,o37,o38,o39);
}))();
});
var compile_dash_sequence = (function(seq,target,linkage){
return (function() {if(last_dash_exp_p_(seq)) {return compile(first_dash_exp(seq),target,linkage);
} else {return preserving(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("continue")),compile(first_dash_exp(seq),target,string_dash__gt_symbol("next")),compile_dash_sequence(rest_dash_exps(seq),target,linkage));
}})()
;
});
var compile_dash_lambda = (function(exp,target,linkage){
return ((function() {var o43 = (function(proc_dash_entry,after_dash_lambda,lambda_dash_linkage){
return append_dash_instruction_dash_sequences(tack_dash_on_dash_instruction_dash_sequence(end_dash_with_dash_linkage(lambda_dash_linkage,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env")),list(target),list_dash_append(((function() {var o48 = (function(o47){
return (function() {if(vector_p_(o47)) {return vector_dash__gt_list(o47);
} else {return o47;
}})()
;
});
var o49 = breakpoint(exp);
return o48(o49);
}))(),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("op"),string_dash__gt_symbol("make_dash_compiled_dash_procedure")),list(string_dash__gt_symbol("label"),proc_dash_entry),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env"))))))),compile_dash_lambda_dash_body(exp,proc_dash_entry)),after_dash_lambda);
});
var o44 = make_dash_label(string_dash__gt_symbol("entry"));
var o45 = make_dash_label(string_dash__gt_symbol("after_dash_lambda"));
var o46 = (function() {if(eq_p_(linkage,string_dash__gt_symbol("next"))) {return o45;
} else {return linkage;
}})()
;
return o43(o44,o45,o46);
}))();
});
var compile_dash_lambda_dash_body = (function(exp,proc_dash_entry){
return ((function() {var o50 = (function(formals){
return append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("proc"),string_dash__gt_symbol("arg1")),list(string_dash__gt_symbol("env")),list(proc_dash_entry,list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("env"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("compiled_dash_procedure_dash_env")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("env"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("extend_dash_environment")),list(string_dash__gt_symbol("const"),formals),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("arg1")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env"))))),compile_dash_sequence(lambda_dash_body(exp),string_dash__gt_symbol("val"),string_dash__gt_symbol("return")));
});
var o51 = lambda_dash_parameters(exp);
return o50(o51);
}))();
});
var compile_dash_application = (function(exp,target,linkage){
return ((function() {var o52 = (function(bp,proc_dash_code,operand_dash_codes){
return preserving(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("continue")),proc_dash_code,preserving(list(string_dash__gt_symbol("proc"),string_dash__gt_symbol("continue")),construct_dash_arglist(operand_dash_codes),append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(_emptylst,_emptylst,bp),compile_dash_procedure_dash_call(exp,target,linkage))));
});
var o53 = breakpoint(exp);
var o54 = compile(operator(exp),string_dash__gt_symbol("proc"),string_dash__gt_symbol("next"));
var o55 = map((function(operand){
return compile(operand,string_dash__gt_symbol("val"),string_dash__gt_symbol("next"));
}),operands(exp));
return o52(o53,o54,o55);
}))();
});
var construct_dash_arglist = (function(operand_dash_codes){
return ((function() {var o56 = (function(operand_dash_codes){
return (function() {if(null_p_(operand_dash_codes)) {return make_dash_instruction_dash_sequence(_emptylst,list(string_dash__gt_symbol("arg1")),list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("arg1"),list(string_dash__gt_symbol("const"),_emptylst))));
} else {return ((function() {var o58 = (function(code_dash_to_dash_get_dash_last_dash_arg){
return (function() {if(null_p_(cdr(operand_dash_codes))) {return code_dash_to_dash_get_dash_last_dash_arg;
} else {return preserving(list(string_dash__gt_symbol("env")),code_dash_to_dash_get_dash_last_dash_arg,code_dash_to_dash_get_dash_rest_dash_args(cdr(operand_dash_codes)));
}})()
;
});
var o59 = append_dash_instruction_dash_sequences(car(operand_dash_codes),make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("val")),list(string_dash__gt_symbol("arg1")),list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("arg1"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("list")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val"))))));
return o58(o59);
}))();
}})()
;
});
var o57 = reverse(operand_dash_codes);
return o56(o57);
}))();
});
var code_dash_to_dash_get_dash_rest_dash_args = (function(operand_dash_codes){
return ((function() {var o60 = (function(code_dash_for_dash_next_dash_arg){
return (function() {if(null_p_(cdr(operand_dash_codes))) {return code_dash_for_dash_next_dash_arg;
} else {return preserving(list(string_dash__gt_symbol("env")),code_dash_for_dash_next_dash_arg,code_dash_to_dash_get_dash_rest_dash_args(cdr(operand_dash_codes)));
}})()
;
});
var o61 = preserving(list(string_dash__gt_symbol("arg1")),car(operand_dash_codes),make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("val"),string_dash__gt_symbol("arg1")),list(string_dash__gt_symbol("arg1")),list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("arg1"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("cons")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("arg1"))))));
return o60(o61);
}))();
});
var compile_dash_procedure_dash_call = (function(exp,target,linkage){
return ((function() {var o62 = (function(primitive_dash_branch,compiled_dash_branch,after_dash_call,compiled_dash_linkage){
return append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc")),_emptylst,list(list(string_dash__gt_symbol("test"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("primitive_dash_procedure_p_")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("branch"),list(string_dash__gt_symbol("label"),primitive_dash_branch)))),parallel_dash_instruction_dash_sequences(append_dash_instruction_dash_sequences(compiled_dash_branch,compile_dash_proc_dash_app1(target,compiled_dash_linkage)),append_dash_instruction_dash_sequences(primitive_dash_branch,end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc"),string_dash__gt_symbol("arg1")),list(target),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("op"),string_dash__gt_symbol("apply_dash_primitive_dash_procedure")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("arg1")))))))),after_dash_call);
});
var o63 = make_dash_label(string_dash__gt_symbol("primitive_dash_branch"));
var o64 = make_dash_label(string_dash__gt_symbol("compiled_dash_branch"));
var o65 = make_dash_label(string_dash__gt_symbol("after_dash_call"));
var o66 = (function() {if(eq_p_(linkage,string_dash__gt_symbol("next"))) {return o65;
} else {return linkage;
}})()
;
return o62(o63,o64,o65,o66);
}))();
});
var compile_dash_proc_dash_app1 = (function(target,linkage){
return (function() {if((eq_p_(target,string_dash__gt_symbol("val")) && not(eq_p_(linkage,string_dash__gt_symbol("return"))))) {return ((function() {return make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc")),all_dash_regs,list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("continue"),list(string_dash__gt_symbol("label"),linkage)),list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("val"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("compiled_dash_procedure_dash_entry")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")))));
}))();
} else {return (function() {if((not(eq_p_(target,string_dash__gt_symbol("val"))) && not(eq_p_(linkage,string_dash__gt_symbol("return"))))) {return ((function() {return make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc")),all_dash_regs,list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("continue"),list(string_dash__gt_symbol("label"),proc_dash_return)),list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("val"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("compiled_dash_procedure_dash_entry")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val"))),proc_dash_return,list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val"))),list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("label"),linkage))));
}))();
} else {return (function() {if((eq_p_(target,string_dash__gt_symbol("val")) && eq_p_(linkage,string_dash__gt_symbol("return")))) {return ((function() {return make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc"),string_dash__gt_symbol("continue")),all_dash_regs,list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("val"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("compiled_dash_procedure_dash_entry")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")))));
}))();
} else {return (function() {if((not(eq_p_(target,string_dash__gt_symbol("val"))) && eq_p_(linkage,string_dash__gt_symbol("return")))) {return ((function() {throw(str("compile-proc-app1: return linkage, target not val: ",target));
}))();
} else {return false;
}})()
;
}})()
;
}})()
;
}})()
;
});
var next_p_ = (function(exp){
return (list_p_(exp) && eq_p_(car(exp),string_dash__gt_symbol("next")));
});
var compile_dash_next = (function(linkage){
return end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(_emptylst,_emptylst,list(list(string_dash__gt_symbol("next")))));
});
var all_dash_regs = list(string_dash__gt_symbol("env"),string_dash__gt_symbol("proc"),string_dash__gt_symbol("val"),string_dash__gt_symbol("arg1"),string_dash__gt_symbol("continue"),string_dash__gt_symbol("exp"));
var compile = (function(exp,target,linkage){
return (function() {if(next_p_(exp)) {return ((function() {return compile_dash_next(linkage);
}))();
} else {return (function() {if(self_dash_evaluating_p_(exp)) {return ((function() {return compile_dash_self_dash_evaluating(exp,target,linkage);
}))();
} else {return (function() {if(quoted_p_(exp)) {return ((function() {return compile_dash_quoted(exp,target,linkage);
}))();
} else {return (function() {if(variable_p_(exp)) {return ((function() {return compile_dash_variable(exp,target,linkage);
}))();
} else {return (function() {if(assignment_p_(exp)) {return ((function() {return compile_dash_assignment(exp,target,linkage);
}))();
} else {return (function() {if(definition_p_(exp)) {return ((function() {return compile_dash_definition(exp,target,linkage);
}))();
} else {return (function() {if(if_p_(exp)) {return ((function() {return compile_dash_if(exp,target,linkage);
}))();
} else {return (function() {if(lambda_p_(exp)) {return ((function() {return compile_dash_lambda(exp,target,linkage);
}))();
} else {return (function() {if(begin_p_(exp)) {return ((function() {return compile_dash_sequence(begin_dash_actions(exp),target,linkage);
}))();
} else {return (function() {if(application_p_(exp)) {return ((function() {return (function() {if(eq_p_(car(exp),string_dash__gt_symbol("break"))) {return ((function() {should_dash_break = true;
return empty_dash_instruction_dash_sequence();
}))();
} else {return compile_dash_application(exp,target,linkage);
}})()
;
}))();
} else {return ((function() {throw(str("compiler: unknown expression type",exp));
}))();
}})()
;
}})()
;
}})()
;
}})()
;
}})()
;
}})()
;
}})()
;
}})()
;
}})()
;
}})()
;
});
var runtime_dash_ops = dict(string_dash__gt_symbol("make_dash_compiled_dash_procedure"),make_dash_compiled_dash_procedure,string_dash__gt_symbol("compiled_dash_procedure_p_"),compiled_dash_procedure_p_,string_dash__gt_symbol("compiled_dash_procedure_dash_env"),compiled_dash_procedure_dash_env,string_dash__gt_symbol("compiled_dash_procedure_dash_entry"),compiled_dash_procedure_dash_entry,string_dash__gt_symbol("extend_dash_environment"),extend_dash_environment,string_dash__gt_symbol("lookup_dash_variable_dash_value"),lookup_dash_variable_dash_value,string_dash__gt_symbol("define_dash_variable_excl_"),define_dash_variable_excl_,string_dash__gt_symbol("list"),list,string_dash__gt_symbol("cons"),cons,string_dash__gt_symbol("primitive_dash_procedure_p_"),primitive_dash_procedure_p_,string_dash__gt_symbol("apply_dash_primitive_dash_procedure"),apply_dash_primitive_dash_procedure,string_dash__gt_symbol("false_p_"),false_p_,string_dash__gt_symbol("true_p_"),true_p_);
var global_dash_environment = setup_dash_environment();
module.exports = dict(string_dash__gt_symbol("compile"),(function(src){
return statements(compile(src,string_dash__gt_symbol("val"),string_dash__gt_symbol("next")));
}),string_dash__gt_symbol("ops"),runtime_dash_ops,string_dash__gt_symbol("first_dash_frame"),first_dash_frame,string_dash__gt_symbol("install_dash_primitives"),install_dash_primitives,string_dash__gt_symbol("stepping_dash_mode"),(function() {always_dash_should_dash_break = true;
}),string_dash__gt_symbol("global_dash_environment"),global_dash_environment);


});

require.define("/machine.js", function (require, module, exports, __dirname, __filename) {
var __args = process.argv.slice(2);var fs = require("fs");var compiler = require("./compiler");var make_dash_machine = (function(regs,ops,controller){
return ((function() {var o1 = (function(machine){
for_dash_each((function(reg){
return machine.allocate_dash_register(reg);
}),regs);
machine.install_dash_operations(ops);
machine.install_dash_instruction_dash_sequence(assemble(controller,machine));
return machine;
});
var o2 = make_dash_new_dash_machine();
return o1(o2);
}))();
});
var make_dash_register = (function() {return ((function() {var o3 = (function(contents){
return dict(string_dash__gt_symbol("get"),(function() {return contents;
}),string_dash__gt_symbol("set_excl_"),(function(val){
contents = val;
}));
});
var o4 = string_dash__gt_symbol("_unassigned_");
return o3(o4);
}))();
});
var make_dash_stack = (function() {return ((function() {var o5 = (function(s){
return dict(string_dash__gt_symbol("push"),(function(x){
s = cons(x,s);
}),string_dash__gt_symbol("pop_excl_"),(function() {return (function() {if(null_p_(s)) {throw("pop: empty stack");
} else {return ((function() {var o7 = (function(top){
s = cdr(s);
return top;
});
var o8 = car(s);
return o7(o8);
}))();
}})()
;
}),string_dash__gt_symbol("initialize"),(function() {s = _emptylst;
}));
});
var o6 = _emptylst;
return o5(o6);
}))();
});
var make_dash_new_dash_machine = (function() {return ((function() {var o9 = (function(pc,flag,stack,instruction_dash_sequence,paused,on_dash_break){
return ((function() {var o16 = (function(ops,reg_dash_table){
var allocate_dash_register = (function(name){
return (function() {if(list_dash_find(keys(reg_dash_table),name)) {throw(str("register already defined: ",name));
} else {return dict_dash_put_excl_(reg_dash_table,name,make_dash_register());
}})()
;
});
var lookup_dash_register = (function(name){
return (function() {if(list_dash_find(keys(reg_dash_table),name)) {return dict_dash_ref(reg_dash_table,name);
} else {throw(str("unknown register: ",name));
}})()
;
});
var pause = (function() {paused = true;
return (function() {if(on_dash_break) {return on_dash_break();
} else {return false;
}})()
;
});
var execute = (function() {return ((function() {var loop = (function() {return ((function() {var o19 = (function(insts){
return (function() {if(null_p_(insts)) {return string_dash__gt_symbol("done");
} else {return ((function() {var o21 = (function(inst){
return (function() {if(not(paused)) {return ((function() {var o23 = (function(proc){
(function() {if(proc) {return proc();
} else {throw(str("invalid exec proc: ",proc));
}})()
;
return vector("__tco_call",(function() {return loop();
}));
});
var o24 = instruction_dash_exec_dash_proc(inst);
return o23(o24);
}))();
} else {return false;
}})()
;
});
var o22 = car(insts);
return o21(o22);
}))();
}})()
;
});
var o20 = pc.get();
return o19(o20);
}))();
});
return trampoline(loop());
}))();
});
return dict(string_dash__gt_symbol("start"),(function() {pc.set_excl_(instruction_dash_sequence);
return execute();
}),string_dash__gt_symbol("install_dash_instruction_dash_sequence"),(function(seq){
instruction_dash_sequence = seq;
}),string_dash__gt_symbol("allocate_dash_register"),allocate_dash_register,string_dash__gt_symbol("get_dash_register"),lookup_dash_register,string_dash__gt_symbol("install_dash_operations"),(function(dct){
ops = dict_dash_merge(ops,dct);
}),string_dash__gt_symbol("stack"),(function() {return stack;
}),string_dash__gt_symbol("operations"),(function() {return ops;
}),string_dash__gt_symbol("registers"),(function() {return keys(reg_dash_table);
}),string_dash__gt_symbol("pause"),pause,string_dash__gt_symbol("proceed"),(function() {paused = false;
return execute();
}),string_dash__gt_symbol("set_dash_break_dash_handler"),(function(func){
on_dash_break = func;
}),string_dash__gt_symbol("on_dash_input"),(function(txt){
return ((function() {var o25 = (function(exp){
(function() {if(eq_p_(car(exp),string_dash__gt_symbol("read_dash_into_dash_reg"))) {return ((function() {var o27 = (function(reg){
return reg.set_excl_(read(txt));
});
var o28 = lookup_dash_register(cadr(exp));
return o27(o28);
}))();
} else {return false;
}})()
;
advance_dash_pc(pc);
stop_dash_stdin();
paused = false;
return execute();
});
var o26 = instruction_dash_text(car(pc.get()));
return o25(o26);
}))();
}));
});
var o17 = dict(string_dash__gt_symbol("initialize_dash_stack"),stack.initialize);
var o18 = dict(string_dash__gt_symbol("flag"),flag,string_dash__gt_symbol("pc"),pc);
return o16(o17,o18);
}))();
});
var o10 = make_dash_register();
var o11 = make_dash_register();
var o12 = make_dash_stack();
var o13 = _emptylst;
var o14 = false;
var o15 = false;
return o9(o10,o11,o12,o13,o14,o15);
}))();
});
var get_dash_register_dash_contents = (function(machine,name){
return dict_dash_ref(machine.get_dash_register(name),string_dash__gt_symbol("get"))();
});
var set_dash_register_dash_contents_excl_ = (function(machine,name,val){
return dict_dash_ref(machine.get_dash_register(name),string_dash__gt_symbol("set_excl_"))(val);
});
var assemble = (function(controller,machine){
return extract_dash_labels(controller,(function(insts,labels){
update_dash_insts_excl_(insts,labels,machine);
return insts;
}));
});
var extract_dash_labels = (function(text,receive){
return (function() {if(null_p_(text)) {return receive(_emptylst,_emptylst);
} else {return extract_dash_labels(cdr(text),(function(insts,labels){
return ((function() {var o29 = (function(next_dash_inst){
return (function() {if(symbol_p_(next_dash_inst)) {return receive(insts,cons(make_dash_label_dash_entry(next_dash_inst,insts),labels));
} else {return receive(cons(make_dash_instruction(next_dash_inst),insts),labels);
}})()
;
});
var o30 = car(text);
return o29(o30);
}))();
}));
}})()
;
});
var update_dash_insts_excl_ = (function(insts,labels,machine){
return ((function() {var o31 = (function(pc,flag,stack,ops){
for_dash_each((function(inst){
return set_dash_instruction_dash_exec_dash_proc_excl_(inst,make_dash_execution_dash_procedure(instruction_dash_text(inst),labels,machine,pc,flag,stack,ops));
}),insts);
return for_dash_each((function(label){
return ((function() {var o36 = (function(i){
return for_dash_each((function(inst){
set_dash_instruction_dash_label_excl_(inst,label_dash_entry_dash_name(label));
set_dash_instruction_dash_line_dash_number_excl_(inst,i);
i = (i + 1);
}),label_dash_insts(label));
});
var o37 = 0;
return o36(o37);
}))();
}),labels);
});
var o32 = machine.get_dash_register(string_dash__gt_symbol("pc"));
var o33 = machine.get_dash_register(string_dash__gt_symbol("flag"));
var o34 = machine.stack();
var o35 = machine.operations();
return o31(o32,o33,o34,o35);
}))();
});
var make_dash_instruction = (function(text){
return vector(text,_emptylst,false,false);
});
var instruction_dash_text = (function(inst){
return vector_dash_ref(inst,0);
});
var instruction_dash_exec_dash_proc = (function(inst){
return vector_dash_ref(inst,1);
});
var instruction_dash_label = (function(inst){
return vector_dash_ref(inst,2);
});
var instruction_dash_line_dash_number = (function(inst){
return vector_dash_ref(inst,3);
});
var set_dash_instruction_dash_exec_dash_proc_excl_ = (function(inst,proc){
return vector_dash_put_excl_(inst,1,proc);
});
var set_dash_instruction_dash_label_excl_ = (function(inst,label){
return vector_dash_put_excl_(inst,2,label);
});
var set_dash_instruction_dash_line_dash_number_excl_ = (function(inst,n){
return vector_dash_put_excl_(inst,3,n);
});
var make_dash_label_dash_entry = (function(label,insts){
return vector(label,insts);
});
var label_dash_entry_dash_name = (function(label){
return vector_dash_ref(label,0);
});
var label_dash_insts = (function(label){
return vector_dash_ref(label,1);
});
var lookup_dash_label = (function(labels,name){
return ((function() {var o38 = (function(lst){
return (function() {if(lst) {return vector_dash_ref(car(lst),1);
} else {throw(str("undefined label: ",name));
}})()
;
});
var o39 = list_dash_find(labels,name,(function(v){
return vector_dash_ref(v,0);
}));
return o38(o39);
}))();
});
var advance_dash_pc = (function(pc){
return pc.set_excl_(cdr(pc.get()));
});
var make_dash_execution_dash_procedure = (function(inst,labels,machine,pc,flag,stack,ops){
return ((function() {var o40 = (function(top){
return (function() {if(_eq__eq_(top,string_dash__gt_symbol("assign"))) {return ((function() {return make_dash_assign(inst,machine,labels,ops,pc);
}))();
} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("test"))) {return ((function() {return make_dash_test(inst,machine,labels,ops,flag,pc);
}))();
} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("branch"))) {return ((function() {return make_dash_branch(inst,machine,labels,flag,pc);
}))();
} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("goto"))) {return ((function() {return make_dash_goto(inst,machine,labels,pc);
}))();
} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("save"))) {return ((function() {return make_dash_save(inst,machine,stack,pc);
}))();
} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("restore"))) {return ((function() {return make_dash_restore(inst,machine,stack,pc);
}))();
} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("perform"))) {return ((function() {return make_dash_perform(inst,machine,labels,ops,pc);
}))();
} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("read_dash_into_dash_reg"))) {return ((function() {return make_dash_read(inst,machine,pc);
}))();
} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("break"))) {return ((function() {return make_dash_break(machine,pc);
}))();
} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("next"))) {return ((function() {return make_dash_next(machine,pc);
}))();
} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("nop"))) {return ((function() {return make_dash_nop(machine,pc);
}))();
} else {return false;
}})()
;
}})()
;
}})()
;
}})()
;
}})()
;
}})()
;
}})()
;
}})()
;
}})()
;
}})()
;
}})()
;
});
var o41 = car(inst);
return o40(o41);
}))();
});
var make_dash_assign = (function(inst,machine,labels,ops,pc){
return ((function() {var o42 = (function(target,expr){
return ((function() {var o45 = (function(value_dash_proc){
return (function() {target.set_excl_(value_dash_proc());
return advance_dash_pc(pc);
});
});
var o46 = (function() {if(operation_dash_exp_p_(expr)) {return make_dash_operation_dash_exp(expr,machine,labels,ops);
} else {return make_dash_primitive_dash_exp(car(expr),machine,labels);
}})()
;
return o45(o46);
}))();
});
var o43 = machine.get_dash_register(cadr(inst));
var o44 = cddr(inst);
return o42(o43,o44);
}))();
});
var make_dash_test = (function(inst,machine,labels,ops,flag,pc){
return ((function() {var o47 = (function(condition){
return (function() {if(operation_dash_exp_p_(condition)) {return ((function() {var o49 = (function(condition_dash_proc){
return (function() {flag.set_excl_(condition_dash_proc());
return advance_dash_pc(pc);
});
});
var o50 = make_dash_operation_dash_exp(condition,machine,labels,ops);
return o49(o50);
}))();
} else {throw(str("bad test instruction:",inst));
}})()
;
});
var o48 = cdr(inst);
return o47(o48);
}))();
});
var make_dash_branch = (function(inst,machine,labels,flag,pc){
return ((function() {var o51 = (function(dest){
return (function() {if(label_dash_exp_p_(dest)) {return ((function() {var o53 = (function(insts){
return (function() {return (function() {if(flag.get()) {return pc.set_excl_(insts);
} else {return advance_dash_pc(pc);
}})()
;
});
});
var o54 = lookup_dash_label(labels,label_dash_exp_dash_label(dest));
return o53(o54);
}))();
} else {throw(str("bad branch instruction: ",inst));
}})()
;
});
var o52 = cadr(inst);
return o51(o52);
}))();
});
var make_dash_goto = (function(inst,machine,labels,pc){
return ((function() {var o55 = (function(dest){
return (function() {if(label_dash_exp_p_(dest)) {return ((function() {return ((function() {var o57 = (function(insts){
return (function() {return pc.set_excl_(insts);
});
});
var o58 = lookup_dash_label(labels,label_dash_exp_dash_label(dest));
return o57(o58);
}))();
}))();
} else {return (function() {if(register_dash_exp_p_(dest)) {return ((function() {return ((function() {var o59 = (function(reg){
return (function() {return pc.set_excl_(reg.get());
});
});
var o60 = machine.get_dash_register(register_dash_exp_dash_reg(dest));
return o59(o60);
}))();
}))();
} else {return ((function() {throw(str("bad goto instruction: ",inst));
}))();
}})()
;
}})()
;
});
var o56 = cadr(inst);
return o55(o56);
}))();
});
var make_dash_save = (function(inst,machine,stack,pc){
return ((function() {var o61 = (function(reg){
return (function() {stack.push(reg.get());
return advance_dash_pc(pc);
});
});
var o62 = machine.get_dash_register(cadr(inst));
return o61(o62);
}))();
});
var make_dash_restore = (function(inst,machine,stack,pc){
return ((function() {var o63 = (function(reg){
return (function() {reg.set_excl_(stack.pop_excl_());
return advance_dash_pc(pc);
});
});
var o64 = machine.get_dash_register(cadr(inst));
return o63(o64);
}))();
});
var make_dash_perform = (function(inst,machine,labels,ops,pc){
return ((function() {var o65 = (function(action){
return (function() {if(operation_dash_exp_p_(action)) {return ((function() {var o67 = (function(action_dash_proc){
return (function() {action_dash_proc();
return advance_dash_pc(pc);
});
});
var o68 = make_dash_operation_dash_exp(action,machine,labels,ops);
return o67(o68);
}))();
} else {throw(str("bad perform instruction: ",inst));
}})()
;
});
var o66 = cdr(inst);
return o65(o66);
}))();
});
var make_dash_read = (function(inst,machine,pc){
return ((function() {var o69 = (function(reg){
return (function() {start_dash_stdin(string_dash__gt_symbol("repl"));
return machine.pause();
});
});
var o70 = machine.get_dash_register(cadr(inst));
return o69(o70);
}))();
});
var make_dash_break = (function(machine,pc){
return (function() {advance_dash_pc(pc);
start_dash_stdin(string_dash__gt_symbol("break"));
println(str("break: ",get_dash_register_dash_contents(machine,string_dash__gt_symbol("exp"))));
return machine.pause();
});
});
var make_dash_next = (function(machine,pc){
return (function() {advance_dash_pc(pc);
machine.pause();
return setTimeout((function() {return machine.proceed();
}),1);
});
});
var make_dash_nop = (function(machine,pc){
return (function() {return advance_dash_pc(pc);
});
});
var make_dash_primitive_dash_exp = (function(exp,machine,labels){
return (function() {if(const_dash_exp_p_(exp)) {return ((function() {return ((function() {var o71 = (function(c){
return (function() {return c;
});
});
var o72 = cadr(exp);
return o71(o72);
}))();
}))();
} else {return (function() {if(label_dash_exp_p_(exp)) {return ((function() {return ((function() {var o73 = (function(insts){
return (function() {return insts;
});
});
var o74 = lookup_dash_label(labels,cadr(exp));
return o73(o74);
}))();
}))();
} else {return (function() {if(register_dash_exp_p_(exp)) {return ((function() {return ((function() {var o75 = (function(r){
return (function() {return r.get();
});
});
var o76 = machine.get_dash_register(cadr(exp));
return o75(o76);
}))();
}))();
} else {return ((function() {throw(str("unknown expression type: ",exp));
}))();
}})()
;
}})()
;
}})()
;
});
var label_dash_exp_p_ = (function(exp){
return (list_p_(exp) && _eq__eq_(car(exp),string_dash__gt_symbol("label")));
});
var label_dash_exp_dash_label = (function(exp){
return cadr(exp);
});
var register_dash_exp_p_ = (function(exp){
return (list_p_(exp) && _eq__eq_(car(exp),string_dash__gt_symbol("reg")));
});
var register_dash_exp_dash_reg = (function(exp){
return cadr(exp);
});
var const_dash_exp_p_ = (function(exp){
return (list_p_(exp) && _eq__eq_(car(exp),string_dash__gt_symbol("const")));
});
var const_dash_exp_dash_value = (function(exp){
return cadr(exp);
});
var make_dash_operation_dash_exp = (function(exp,machine,labels,ops){
return ((function() {var o77 = (function(op,aprocs){
return (function() {return apply(op,map((function(p){
return p();
}),aprocs));
});
});
var o78 = lookup_dash_prim(cadar(exp),ops);
var o79 = map((function(e){
return make_dash_primitive_dash_exp(e,machine,labels);
}),cdr(exp));
return o77(o78,o79);
}))();
});
var operation_dash_exp_p_ = (function(exp){
return (list_p_(exp) && eq_p_(car(car(exp)),string_dash__gt_symbol("op")));
});
var lookup_dash_prim = (function(sym,ops){
return ((function() {var o80 = (function(prim){
(function() {if(not(prim)) {throw(str("unknown operation: ",sym));
} else {return false;
}})()
;
return prim;
});
var o81 = dict_dash_ref(ops,sym);
return o80(o81);
}))();
});
var stdin_dash_mode = false;
var start_dash_stdin = (function(mode){
stdin_dash_mode = mode;
return get_dash_stdin_dash_handler()();
});
var stdin_dash_handler = (function() {return process.stdin.resume();
});
var get_dash_stdin_dash_handler = (function() {return stdin_dash_handler;
});
var set_dash_stdin_dash_handler_excl_ = (function(func){
stdin_dash_handler = func;
});
var stop_dash_stdin = (function() {return process.stdin.pause();
});
process.stdin.on("data",(function(txt){
return ((function() {var o82 = (function(txt){
return (function() {if(_eq_(stdin_dash_mode,string_dash__gt_symbol("repl"))) {return ((function() {return on_dash_repl_dash_input(txt);
}))();
} else {return (function() {if(_eq_(stdin_dash_mode,string_dash__gt_symbol("break"))) {return ((function() {return on_dash_break_dash_input(txt);
}))();
} else {return false;
}})()
;
}})()
;
});
var o83 = (txt + "");
return o82(o83);
}))();
}));
process.stdin.pause();
var continue_dash_machine = (function() {process.stdin.pause();
return current_dash_machine.proceed();
});
var inspect_dash_var = (function(v){
return inspect(v);
});
var inspect_dash_environment = (function() {return ((function() {var o84 = (function(frame){
return fold((function(k,acc){
return ((function() {var o86 = (function(v,v){
return (acc + str(k,": ",v,"\n"));
});
var o87 = dict_dash_ref(frame,k);
var o88 = inspect_dash_var(o87);
return o86(o87,o88);
}))();
}),"",keys(frame));
});
var o85 = compiler.first_dash_frame(get_dash_register_dash_contents(current_dash_machine,string_dash__gt_symbol("env")));
return o84(o85);
}))();
});
var debugger_dash_handle = (function(txt){
return ((function() {var o89 = (function(txt){
return (function() {if(_eq_(txt,"v")) {return ((function() {return println(inspect_dash_environment());
}))();
} else {return ((function() {return continue_dash_machine();
}))();
}})()
;
});
var o90 = txt.trim();
return o89(o90);
}))();
});
var current_dash_machine = false;
var on_dash_repl_dash_input = (function(txt){
return current_dash_machine.on_dash_input(txt);
});
var on_dash_break_dash_input = debugger_dash_handle;
var feed_dash_asm = (function(src){
return ((function() {var o91 = (function(machine){
set_dash_register_dash_contents_excl_(machine,string_dash__gt_symbol("env"),compiler.global_dash_environment);
current_dash_machine = machine;
return machine;
});
var o92 = make_dash_machine(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("proc"),string_dash__gt_symbol("val"),string_dash__gt_symbol("arg1"),string_dash__gt_symbol("continue"),string_dash__gt_symbol("input"),string_dash__gt_symbol("exp")),compiler.ops,src);
return o91(o92);
}))();
});
module.exports = dict(string_dash__gt_symbol("feed_dash_asm"),feed_dash_asm,string_dash__gt_symbol("set_dash_stdin_dash_handler_excl_"),set_dash_stdin_dash_handler_excl_,string_dash__gt_symbol("instance"),(function() {return current_dash_machine;
}),string_dash__gt_symbol("inspect_dash_environment"),inspect_dash_environment,string_dash__gt_symbol("get_dash_register_dash_contents"),get_dash_register_dash_contents,string_dash__gt_symbol("result"),(function() {return get_dash_register_dash_contents(current_dash_machine,string_dash__gt_symbol("val"));
}));


});

require.define("fs", function (require, module, exports, __dirname, __filename) {
// nothing to see here... no file methods for the browser

});

require.define("/vm.js", function (require, module, exports, __dirname, __filename) {
    var __args = process.argv.slice(2);var compiler = require("./compiler");var machine = require("./machine");var run = (function(src){
return ((function() {var o1 = (function(statements,m){
m.set_dash_break_dash_handler(break_dash_handler);
return m.start();
});
var o2 = compiler.compile(src);
var o3 = machine.feed_dash_asm(o2);
return o1(o2,o3);
}))();
});
var resume = (function() {return ((function() {var o4 = (function(m){
return m.proceed();
});
var o5 = machine.instance();
return o4(o5);
}))();
});
var asm = (function(src){
return pp(compiler.compile(src));
});
var break_dash_handler = false;
var set_dash_break_dash_handler = (function(func){
break_dash_handler = func;
});
var install_dash_primitives = (function(procs){
return compiler.install_dash_primitives(procs);
});
module.exports = dict(string_dash__gt_symbol("run"),run,string_dash__gt_symbol("asm"),asm,string_dash__gt_symbol("stepping_dash_mode"),compiler.stepping_dash_mode,string_dash__gt_symbol("set_dash_break_dash_handler"),set_dash_break_dash_handler,string_dash__gt_symbol("install_dash_primitives"),install_dash_primitives);


});
require("/vm.js");

<MSG> Merge branch 'symbols'

<DFF> @@ -367,22 +367,22 @@ return not(x);
 var self_dash_evaluating_p_ = literal_p_;
 var variable_p_ = symbol_p_;
 var quoted_p_ = (function(expr){
-return eq_p_(car(expr),string_dash__gt_symbol("quote"));
+return eq_p_(car(expr),"\uFDD1quote");
 });
 var assignment_p_ = (function(expr){
-return eq_p_(car(expr),string_dash__gt_symbol("set_excl_"));
+return eq_p_(car(expr),"\uFDD1set!");
 });
 var definition_p_ = (function(expr){
-return eq_p_(car(expr),string_dash__gt_symbol("define"));
+return eq_p_(car(expr),"\uFDD1define");
 });
 var if_p_ = (function(expr){
-return eq_p_(car(expr),string_dash__gt_symbol("if"));
+return eq_p_(car(expr),"\uFDD1if");
 });
 var lambda_p_ = (function(expr){
-return eq_p_(car(expr),string_dash__gt_symbol("lambda"));
+return eq_p_(car(expr),"\uFDD1lambda");
 });
 var begin_p_ = (function(expr){
-return eq_p_(car(expr),string_dash__gt_symbol("begin"));
+return eq_p_(car(expr),"\uFDD1begin");
 });
 var application_p_ = list_p_;
 var text_dash_of_dash_quotation = (function(expr){
@@ -391,7 +391,7 @@ return cadr(expr);
 var assignment_dash_variable = cadr;
 var assignment_dash_value = caddr;
 var make_dash_lambda = (function(args,body){
-return cons(string_dash__gt_symbol("lambda"),cons(args,body));
+return cons("\uFDD1lambda",cons(args,body));
 });
 var definition_dash_variable = (function(expr){
 return (function() {if(symbol_p_(cadr(expr))) {return cadr(expr);
@@ -434,9 +434,9 @@ var always_dash_should_dash_break = false;
 var should_dash_break = false;
 var breakpoint = (function(exp){
 return (function() {if((always_dash_should_dash_break || should_dash_break)) {return ((function() {should_dash_break = false;
-return list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("exp"),list(string_dash__gt_symbol("const"),exp)),list(string_dash__gt_symbol("break")));
+return list(list("\uFDD1assign","\uFDD1exp",list("\uFDD1const",exp)),list("\uFDD1break"));
 }))();
-} else {return list(list(string_dash__gt_symbol("nop")));
+} else {return list(list("\uFDD1nop"));
 }})()
 ;
 });
@@ -485,7 +485,7 @@ return append_dash_seq_dash_list(seqs);
 var preserving = (function(regs,seq1,seq2){
 return (function() {if(null_p_(regs)) {return append_dash_instruction_dash_sequences(seq1,seq2);
 } else {return ((function() {var o1 = (function(first_dash_reg){
-return (function() {if((needs_dash_register_p_(seq2,first_dash_reg) && modifies_dash_register_p_(seq1,first_dash_reg))) {return preserving(cdr(regs),make_dash_instruction_dash_sequence(list_dash_union(list(first_dash_reg),registers_dash_needed(seq1)),list_dash_difference(registers_dash_modified(seq1),list(first_dash_reg)),list_dash_append(list(list(string_dash__gt_symbol("save"),first_dash_reg)),list_dash_append(statements(seq1),list(list(string_dash__gt_symbol("restore"),first_dash_reg))))),seq2);
+return (function() {if((needs_dash_register_p_(seq2,first_dash_reg) && modifies_dash_register_p_(seq1,first_dash_reg))) {return preserving(cdr(regs),make_dash_instruction_dash_sequence(list_dash_union(list(first_dash_reg),registers_dash_needed(seq1)),list_dash_difference(registers_dash_modified(seq1),list(first_dash_reg)),list_dash_append(list(list("\uFDD1save",first_dash_reg)),list_dash_append(statements(seq1),list(list("\uFDD1restore",first_dash_reg))))),seq2);
 } else {return preserving(cdr(regs),seq1,seq2);
 }})()
 ;
@@ -571,45 +571,45 @@ var o10 = last_dash_frame(global_dash_environment);
 return o9(o10);
 }))();
 });
-var primitive_dash_procedures = dict(string_dash__gt_symbol("car"),car,string_dash__gt_symbol("cdr"),cdr,string_dash__gt_symbol("cons"),cons,string_dash__gt_symbol("list"),list,string_dash__gt_symbol("null_p_"),null_p_,string_dash__gt_symbol("pp"),pp,string_dash__gt_symbol("+"),(function(x,y){
+var primitive_dash_procedures = dict("\uFDD1car",car,"\uFDD1cdr",cdr,"\uFDD1cons",cons,"\uFDD1list",list,"\uFDD1null?",null_p_,"\uFDD1pp",pp,"\uFDD1+",(function(x,y){
 return (x + y);
-}),string_dash__gt_symbol("_dash_"),(function(x,y){
+}),"\uFDD1-",(function(x,y){
 return (x - y);
-}),string_dash__gt_symbol("*"),(function(x,y){
+}),"\uFDD1*",(function(x,y){
 return (x * y);
-}),string_dash__gt_symbol("_gt_"),(function(x,y){
+}),"\uFDD1>",(function(x,y){
 return (x > y);
-}),string_dash__gt_symbol("_lt_"),(function(x,y){
+}),"\uFDD1<",(function(x,y){
 return (x < y);
-}),string_dash__gt_symbol("_eq__eq_"),_eq__eq_);
+}),"\uFDD1==",_eq__eq_);
 var primitive_dash_procedure_dash_names = (function() {return keys(primitive_dash_procedures);
 });
 var primitive_dash_procedure_dash_objects = (function() {return map(make_dash_primitive_dash_procedure,vals(primitive_dash_procedures));
 });
 var make_dash_primitive_dash_procedure = (function(proc){
-return list(string_dash__gt_symbol("primitive"),proc);
+return list("\uFDD1primitive",proc);
 });
 var primitive_dash_procedure_p_ = (function(proc){
-return eq_p_(car(proc),string_dash__gt_symbol("primitive"));
+return eq_p_(car(proc),"\uFDD1primitive");
 });
 var primitive_dash_implementation = cadr;
 var apply_dash_primitive_dash_procedure = (function(proc,args){
 return apply(primitive_dash_implementation(proc),args);
 });
 var make_dash_compiled_dash_procedure = (function(entry,env){
-return list(string_dash__gt_symbol("compiled_dash_procedure"),entry,env);
+return list("\uFDD1compiled-procedure",entry,env);
 });
 var compiled_dash_procedure_p_ = (function(proc){
-return eq_p_(car(proc),string_dash__gt_symbol("compiled_dash_procedure"));
+return eq_p_(car(proc),"\uFDD1compiled-procedure");
 });
 var compiled_dash_procedure_dash_entry = cadr;
 var compiled_dash_procedure_dash_env = caddr;
 var compile_dash_linkage = (function(linkage){
-return (function() {if(eq_p_(linkage,string_dash__gt_symbol("return"))) {return ((function() {return make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("continue")),_emptylst,list(list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("continue")))));
+return (function() {if(eq_p_(linkage,"\uFDD1return")) {return ((function() {return make_dash_instruction_dash_sequence(list("\uFDD1continue"),_emptylst,list(list("\uFDD1goto",list("\uFDD1reg","\uFDD1continue"))));
 }))();
-} else {return (function() {if(eq_p_(linkage,string_dash__gt_symbol("next"))) {return ((function() {return empty_dash_instruction_dash_sequence();
+} else {return (function() {if(eq_p_(linkage,"\uFDD1next")) {return ((function() {return empty_dash_instruction_dash_sequence();
 }))();
-} else {return ((function() {return make_dash_instruction_dash_sequence(_emptylst,_emptylst,list(list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("label"),linkage))));
+} else {return ((function() {return make_dash_instruction_dash_sequence(_emptylst,_emptylst,list(list("\uFDD1goto",list("\uFDD1label",linkage))));
 }))();
 }})()
 ;
@@ -617,7 +617,7 @@ return (function() {if(eq_p_(linkage,string_dash__gt_symbol("return"))) {return
 ;
 });
 var end_dash_with_dash_linkage = (function(linkage,instruction_dash_sequence){
-return preserving(list(string_dash__gt_symbol("continue")),instruction_dash_sequence,compile_dash_linkage(linkage));
+return preserving(list("\uFDD1continue"),instruction_dash_sequence,compile_dash_linkage(linkage));
 });
 var compile_dash_self_dash_evaluating = (function(exp,target,linkage){
 return end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(_emptylst,list(target),list_dash_append(((function() {var o12 = (function(o11){
@@ -628,7 +628,7 @@ return (function() {if(vector_p_(o11)) {return vector_dash__gt_list(o11);
 });
 var o13 = breakpoint(exp);
 return o12(o13);
-}))(),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("const"),exp))))));
+}))(),list(list("\uFDD1assign",target,list("\uFDD1const",exp))))));
 });
 var compile_dash_quoted = (function(exp,target,linkage){
 return end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(_emptylst,list(target),list_dash_append(((function() {var o15 = (function(o14){
@@ -639,10 +639,10 @@ return (function() {if(vector_p_(o14)) {return vector_dash__gt_list(o14);
 });
 var o16 = breakpoint(exp);
 return o15(o16);
-}))(),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("const"),text_dash_of_dash_quotation(exp)))))));
+}))(),list(list("\uFDD1assign",target,list("\uFDD1const",text_dash_of_dash_quotation(exp)))))));
 });
 var compile_dash_variable = (function(exp,target,linkage){
-return end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env")),list(target),list_dash_append(((function() {var o18 = (function(o17){
+return end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(list("\uFDD1env"),list(target),list_dash_append(((function() {var o18 = (function(o17){
 return (function() {if(vector_p_(o17)) {return vector_dash__gt_list(o17);
 } else {return o17;
 }})()
@@ -650,11 +650,11 @@ return (function() {if(vector_p_(o17)) {return vector_dash__gt_list(o17);
 });
 var o19 = breakpoint(exp);
 return o18(o19);
-}))(),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("op"),string_dash__gt_symbol("lookup_dash_variable_dash_value")),list(string_dash__gt_symbol("const"),exp),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env")))))));
+}))(),list(list("\uFDD1assign",target,list("\uFDD1op","\uFDD1lookup-variable-value"),list("\uFDD1const",exp),list("\uFDD1reg","\uFDD1env"))))));
 });
 var compile_dash_assignment = (function(exp,target,linkage){
 return ((function() {var o20 = (function(_var_,value_dash_code){
-return end_dash_with_dash_linkage(linkage,preserving(list(string_dash__gt_symbol("env")),value_dash_code,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("val")),list(target),list_dash_append(((function() {var o24 = (function(o23){
+return end_dash_with_dash_linkage(linkage,preserving(list("\uFDD1env"),value_dash_code,make_dash_instruction_dash_sequence(list("\uFDD1env","\uFDD1val"),list(target),list_dash_append(((function() {var o24 = (function(o23){
 return (function() {if(vector_p_(o23)) {return vector_dash__gt_list(o23);
 } else {return o23;
 }})()
@@ -662,16 +662,16 @@ return (function() {if(vector_p_(o23)) {return vector_dash__gt_list(o23);
 });
 var o25 = breakpoint(exp);
 return o24(o25);
-}))(),list(list(string_dash__gt_symbol("perform"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("set_dash_variable_dash_value_excl_")),list(string_dash__gt_symbol("const"),_var_),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env"))),list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("const"),string_dash__gt_symbol("ok"))))))));
+}))(),list(list("\uFDD1perform",list("\uFDD1op","\uFDD1set-variable-value!"),list("\uFDD1const",_var_),list("\uFDD1reg","\uFDD1val"),list("\uFDD1reg","\uFDD1env")),list("\uFDD1assign",target,list("\uFDD1const","\uFDD1ok")))))));
 });
 var o21 = assignment_dash_variable(exp);
-var o22 = compile(assignment_dash_value(exp),string_dash__gt_symbol("val"),string_dash__gt_symbol("next"));
+var o22 = compile(assignment_dash_value(exp),"\uFDD1val","\uFDD1next");
 return o20(o21,o22);
 }))();
 });
 var compile_dash_definition = (function(exp,target,linkage){
 return ((function() {var o26 = (function(_var_,value_dash_code){
-return end_dash_with_dash_linkage(linkage,preserving(list(string_dash__gt_symbol("env")),value_dash_code,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("val")),list(target),list_dash_append(((function() {var o30 = (function(o29){
+return end_dash_with_dash_linkage(linkage,preserving(list("\uFDD1env"),value_dash_code,make_dash_instruction_dash_sequence(list("\uFDD1env","\uFDD1val"),list(target),list_dash_append(((function() {var o30 = (function(o29){
 return (function() {if(vector_p_(o29)) {return vector_dash__gt_list(o29);
 } else {return o29;
 }})()
@@ -679,16 +679,16 @@ return (function() {if(vector_p_(o29)) {return vector_dash__gt_list(o29);
 });
 var o31 = breakpoint(exp);
 return o30(o31);
-}))(),list(list(string_dash__gt_symbol("perform"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("define_dash_variable_excl_")),list(string_dash__gt_symbol("const"),_var_),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env"))),list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("const"),string_dash__gt_symbol("ok"))))))));
+}))(),list(list("\uFDD1perform",list("\uFDD1op","\uFDD1define-variable!"),list("\uFDD1const",_var_),list("\uFDD1reg","\uFDD1val"),list("\uFDD1reg","\uFDD1env")),list("\uFDD1assign",target,list("\uFDD1const","\uFDD1ok")))))));
 });
 var o27 = definition_dash_variable(exp);
-var o28 = compile(definition_dash_value(exp),string_dash__gt_symbol("val"),string_dash__gt_symbol("next"));
+var o28 = compile(definition_dash_value(exp),"\uFDD1val","\uFDD1next");
 return o26(o27,o28);
 }))();
 });
 var compile_dash_if = (function(exp,target,linkage){
 return ((function() {var o32 = (function(t_dash_branch,f_dash_branch,after_dash_if,consequent_dash_linkage,p_dash_code,c_dash_code,a_dash_code){
-return preserving(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("continue")),p_dash_code,append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("val")),_emptylst,list_dash_append(((function() {var o41 = (function(o40){
+return preserving(list("\uFDD1env","\uFDD1continue"),p_dash_code,append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(list("\uFDD1val"),_emptylst,list_dash_append(((function() {var o41 = (function(o40){
 return (function() {if(vector_p_(o40)) {return vector_dash__gt_list(o40);
 } else {return o40;
 }})()
@@ -696,16 +696,16 @@ return (function() {if(vector_p_(o40)) {return vector_dash__gt_list(o40);
 });
 var o42 = breakpoint(exp);
 return o41(o42);
-}))(),list(list(string_dash__gt_symbol("test"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("false_p_")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val"))),list(string_dash__gt_symbol("branch"),list(string_dash__gt_symbol("label"),f_dash_branch))))),parallel_dash_instruction_dash_sequences(append_dash_instruction_dash_sequences(t_dash_branch,c_dash_code),append_dash_instruction_dash_sequences(f_dash_branch,a_dash_code)),after_dash_if));
+}))(),list(list("\uFDD1test",list("\uFDD1op","\uFDD1false?"),list("\uFDD1reg","\uFDD1val")),list("\uFDD1branch",list("\uFDD1label",f_dash_branch))))),parallel_dash_instruction_dash_sequences(append_dash_instruction_dash_sequences(t_dash_branch,c_dash_code),append_dash_instruction_dash_sequences(f_dash_branch,a_dash_code)),after_dash_if));
 });
-var o33 = make_dash_label(string_dash__gt_symbol("true_dash_branch"));
-var o34 = make_dash_label(string_dash__gt_symbol("false_dash_branch"));
-var o35 = make_dash_label(string_dash__gt_symbol("after_dash_if"));
-var o36 = (function() {if(eq_p_(linkage,string_dash__gt_symbol("next"))) {return o35;
+var o33 = make_dash_label("\uFDD1true-branch");
+var o34 = make_dash_label("\uFDD1false-branch");
+var o35 = make_dash_label("\uFDD1after-if");
+var o36 = (function() {if(eq_p_(linkage,"\uFDD1next")) {return o35;
 } else {return linkage;
 }})()
 ;
-var o37 = compile(if_dash_predicate(exp),string_dash__gt_symbol("val"),string_dash__gt_symbol("next"));
+var o37 = compile(if_dash_predicate(exp),"\uFDD1val","\uFDD1next");
 var o38 = compile(if_dash_consequent(exp),target,o36);
 var o39 = compile(if_dash_alternative(exp),target,linkage);
 return o32(o33,o34,o35,o36,o37,o38,o39);
@@ -713,13 +713,13 @@ return o32(o33,o34,o35,o36,o37,o38,o39);
 });
 var compile_dash_sequence = (function(seq,target,linkage){
 return (function() {if(last_dash_exp_p_(seq)) {return compile(first_dash_exp(seq),target,linkage);
-} else {return preserving(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("continue")),compile(first_dash_exp(seq),target,string_dash__gt_symbol("next")),compile_dash_sequence(rest_dash_exps(seq),target,linkage));
+} else {return preserving(list("\uFDD1env","\uFDD1continue"),compile(first_dash_exp(seq),target,"\uFDD1next"),compile_dash_sequence(rest_dash_exps(seq),target,linkage));
 }})()
 ;
 });
 var compile_dash_lambda = (function(exp,target,linkage){
 return ((function() {var o43 = (function(proc_dash_entry,after_dash_lambda,lambda_dash_linkage){
-return append_dash_instruction_dash_sequences(tack_dash_on_dash_instruction_dash_sequence(end_dash_with_dash_linkage(lambda_dash_linkage,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env")),list(target),list_dash_append(((function() {var o48 = (function(o47){
+return append_dash_instruction_dash_sequences(tack_dash_on_dash_instruction_dash_sequence(end_dash_with_dash_linkage(lambda_dash_linkage,make_dash_instruction_dash_sequence(list("\uFDD1env"),list(target),list_dash_append(((function() {var o48 = (function(o47){
 return (function() {if(vector_p_(o47)) {return vector_dash__gt_list(o47);
 } else {return o47;
 }})()
@@ -727,11 +727,11 @@ return (function() {if(vector_p_(o47)) {return vector_dash__gt_list(o47);
 });
 var o49 = breakpoint(exp);
 return o48(o49);
-}))(),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("op"),string_dash__gt_symbol("make_dash_compiled_dash_procedure")),list(string_dash__gt_symbol("label"),proc_dash_entry),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env"))))))),compile_dash_lambda_dash_body(exp,proc_dash_entry)),after_dash_lambda);
+}))(),list(list("\uFDD1assign",target,list("\uFDD1op","\uFDD1make-compiled-procedure"),list("\uFDD1label",proc_dash_entry),list("\uFDD1reg","\uFDD1env")))))),compile_dash_lambda_dash_body(exp,proc_dash_entry)),after_dash_lambda);
 });
-var o44 = make_dash_label(string_dash__gt_symbol("entry"));
-var o45 = make_dash_label(string_dash__gt_symbol("after_dash_lambda"));
-var o46 = (function() {if(eq_p_(linkage,string_dash__gt_symbol("next"))) {return o45;
+var o44 = make_dash_label("\uFDD1entry");
+var o45 = make_dash_label("\uFDD1after-lambda");
+var o46 = (function() {if(eq_p_(linkage,"\uFDD1next")) {return o45;
 } else {return linkage;
 }})()
 ;
@@ -740,7 +740,7 @@ return o43(o44,o45,o46);
 });
 var compile_dash_lambda_dash_body = (function(exp,proc_dash_entry){
 return ((function() {var o50 = (function(formals){
-return append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("proc"),string_dash__gt_symbol("arg1")),list(string_dash__gt_symbol("env")),list(proc_dash_entry,list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("env"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("compiled_dash_procedure_dash_env")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("env"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("extend_dash_environment")),list(string_dash__gt_symbol("const"),formals),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("arg1")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env"))))),compile_dash_sequence(lambda_dash_body(exp),string_dash__gt_symbol("val"),string_dash__gt_symbol("return")));
+return append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(list("\uFDD1env","\uFDD1proc","\uFDD1arg1"),list("\uFDD1env"),list(proc_dash_entry,list("\uFDD1assign","\uFDD1env",list("\uFDD1op","\uFDD1compiled-procedure-env"),list("\uFDD1reg","\uFDD1proc")),list("\uFDD1assign","\uFDD1env",list("\uFDD1op","\uFDD1extend-environment"),list("\uFDD1const",formals),list("\uFDD1reg","\uFDD1arg1"),list("\uFDD1reg","\uFDD1env")))),compile_dash_sequence(lambda_dash_body(exp),"\uFDD1val","\uFDD1return"));
 });
 var o51 = lambda_dash_parameters(exp);
 return o50(o51);
@@ -748,26 +748,26 @@ return o50(o51);
 });
 var compile_dash_application = (function(exp,target,linkage){
 return ((function() {var o52 = (function(bp,proc_dash_code,operand_dash_codes){
-return preserving(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("continue")),proc_dash_code,preserving(list(string_dash__gt_symbol("proc"),string_dash__gt_symbol("continue")),construct_dash_arglist(operand_dash_codes),append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(_emptylst,_emptylst,bp),compile_dash_procedure_dash_call(exp,target,linkage))));
+return preserving(list("\uFDD1env","\uFDD1continue"),proc_dash_code,preserving(list("\uFDD1proc","\uFDD1continue"),construct_dash_arglist(operand_dash_codes),append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(_emptylst,_emptylst,bp),compile_dash_procedure_dash_call(exp,target,linkage))));
 });
 var o53 = breakpoint(exp);
-var o54 = compile(operator(exp),string_dash__gt_symbol("proc"),string_dash__gt_symbol("next"));
+var o54 = compile(operator(exp),"\uFDD1proc","\uFDD1next");
 var o55 = map((function(operand){
-return compile(operand,string_dash__gt_symbol("val"),string_dash__gt_symbol("next"));
+return compile(operand,"\uFDD1val","\uFDD1next");
 }),operands(exp));
 return o52(o53,o54,o55);
 }))();
 });
 var construct_dash_arglist = (function(operand_dash_codes){
 return ((function() {var o56 = (function(operand_dash_codes){
-return (function() {if(null_p_(operand_dash_codes)) {return make_dash_instruction_dash_sequence(_emptylst,list(string_dash__gt_symbol("arg1")),list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("arg1"),list(string_dash__gt_symbol("const"),_emptylst))));
+return (function() {if(null_p_(operand_dash_codes)) {return make_dash_instruction_dash_sequence(_emptylst,list("\uFDD1arg1"),list(list("\uFDD1assign","\uFDD1arg1",list("\uFDD1const",_emptylst))));
 } else {return ((function() {var o58 = (function(code_dash_to_dash_get_dash_last_dash_arg){
 return (function() {if(null_p_(cdr(operand_dash_codes))) {return code_dash_to_dash_get_dash_last_dash_arg;
-} else {return preserving(list(string_dash__gt_symbol("env")),code_dash_to_dash_get_dash_last_dash_arg,code_dash_to_dash_get_dash_rest_dash_args(cdr(operand_dash_codes)));
+} else {return preserving(list("\uFDD1env"),code_dash_to_dash_get_dash_last_dash_arg,code_dash_to_dash_get_dash_rest_dash_args(cdr(operand_dash_codes)));
 }})()
 ;
 });
-var o59 = append_dash_instruction_dash_sequences(car(operand_dash_codes),make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("val")),list(string_dash__gt_symbol("arg1")),list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("arg1"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("list")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val"))))));
+var o59 = append_dash_instruction_dash_sequences(car(operand_dash_codes),make_dash_instruction_dash_sequence(list("\uFDD1val"),list("\uFDD1arg1"),list(list("\uFDD1assign","\uFDD1arg1",list("\uFDD1op","\uFDD1list"),list("\uFDD1reg","\uFDD1val")))));
 return o58(o59);
 }))();
 }})()
@@ -780,22 +780,22 @@ return o56(o57);
 var code_dash_to_dash_get_dash_rest_dash_args = (function(operand_dash_codes){
 return ((function() {var o60 = (function(code_dash_for_dash_next_dash_arg){
 return (function() {if(null_p_(cdr(operand_dash_codes))) {return code_dash_for_dash_next_dash_arg;
-} else {return preserving(list(string_dash__gt_symbol("env")),code_dash_for_dash_next_dash_arg,code_dash_to_dash_get_dash_rest_dash_args(cdr(operand_dash_codes)));
+} else {return preserving(list("\uFDD1env"),code_dash_for_dash_next_dash_arg,code_dash_to_dash_get_dash_rest_dash_args(cdr(operand_dash_codes)));
 }})()
 ;
 });
-var o61 = preserving(list(string_dash__gt_symbol("arg1")),car(operand_dash_codes),make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("val"),string_dash__gt_symbol("arg1")),list(string_dash__gt_symbol("arg1")),list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("arg1"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("cons")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("arg1"))))));
+var o61 = preserving(list("\uFDD1arg1"),car(operand_dash_codes),make_dash_instruction_dash_sequence(list("\uFDD1val","\uFDD1arg1"),list("\uFDD1arg1"),list(list("\uFDD1assign","\uFDD1arg1",list("\uFDD1op","\uFDD1cons"),list("\uFDD1reg","\uFDD1val"),list("\uFDD1reg","\uFDD1arg1")))));
 return o60(o61);
 }))();
 });
 var compile_dash_procedure_dash_call = (function(exp,target,linkage){
 return ((function() {var o62 = (function(primitive_dash_branch,compiled_dash_branch,after_dash_call,compiled_dash_linkage){
-return append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc")),_emptylst,list(list(string_dash__gt_symbol("test"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("primitive_dash_procedure_p_")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("branch"),list(string_dash__gt_symbol("label"),primitive_dash_branch)))),parallel_dash_instruction_dash_sequences(append_dash_instruction_dash_sequences(compiled_dash_branch,compile_dash_proc_dash_app1(target,compiled_dash_linkage)),append_dash_instruction_dash_sequences(primitive_dash_branch,end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc"),string_dash__gt_symbol("arg1")),list(target),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("op"),string_dash__gt_symbol("apply_dash_primitive_dash_procedure")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("arg1")))))))),after_dash_call);
+return append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(list("\uFDD1proc"),_emptylst,list(list("\uFDD1test",list("\uFDD1op","\uFDD1primitive-procedure?"),list("\uFDD1reg","\uFDD1proc")),list("\uFDD1branch",list("\uFDD1label",primitive_dash_branch)))),parallel_dash_instruction_dash_sequences(append_dash_instruction_dash_sequences(compiled_dash_branch,compile_dash_proc_dash_app1(target,compiled_dash_linkage)),append_dash_instruction_dash_sequences(primitive_dash_branch,end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(list("\uFDD1proc","\uFDD1arg1"),list(target),list(list("\uFDD1assign",target,list("\uFDD1op","\uFDD1apply-primitive-procedure"),list("\uFDD1reg","\uFDD1proc"),list("\uFDD1reg","\uFDD1arg1"))))))),after_dash_call);
 });
-var o63 = make_dash_label(string_dash__gt_symbol("primitive_dash_branch"));
-var o64 = make_dash_label(string_dash__gt_symbol("compiled_dash_branch"));
-var o65 = make_dash_label(string_dash__gt_symbol("after_dash_call"));
-var o66 = (function() {if(eq_p_(linkage,string_dash__gt_symbol("next"))) {return o65;
+var o63 = make_dash_label("\uFDD1primitive-branch");
+var o64 = make_dash_label("\uFDD1compiled-branch");
+var o65 = make_dash_label("\uFDD1after-call");
+var o66 = (function() {if(eq_p_(linkage,"\uFDD1next")) {return o65;
 } else {return linkage;
 }})()
 ;
@@ -803,13 +803,13 @@ return o62(o63,o64,o65,o66);
 }))();
 });
 var compile_dash_proc_dash_app1 = (function(target,linkage){
-return (function() {if((eq_p_(target,string_dash__gt_symbol("val")) && not(eq_p_(linkage,string_dash__gt_symbol("return"))))) {return ((function() {return make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc")),all_dash_regs,list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("continue"),list(string_dash__gt_symbol("label"),linkage)),list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("val"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("compiled_dash_procedure_dash_entry")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")))));
+return (function() {if((eq_p_(target,"\uFDD1val") && not(eq_p_(linkage,"\uFDD1return")))) {return ((function() {return make_dash_instruction_dash_sequence(list("\uFDD1proc"),all_dash_regs,list(list("\uFDD1assign","\uFDD1continue",list("\uFDD1label",linkage)),list("\uFDD1assign","\uFDD1val",list("\uFDD1op","\uFDD1compiled-procedure-entry"),list("\uFDD1reg","\uFDD1proc")),list("\uFDD1goto",list("\uFDD1reg","\uFDD1val"))));
 }))();
-} else {return (function() {if((not(eq_p_(target,string_dash__gt_symbol("val"))) && not(eq_p_(linkage,string_dash__gt_symbol("return"))))) {return ((function() {return make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc")),all_dash_regs,list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("continue"),list(string_dash__gt_symbol("label"),proc_dash_return)),list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("val"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("compiled_dash_procedure_dash_entry")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val"))),proc_dash_return,list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val"))),list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("label"),linkage))));
+} else {return (function() {if((not(eq_p_(target,"\uFDD1val")) && not(eq_p_(linkage,"\uFDD1return")))) {return ((function() {return make_dash_instruction_dash_sequence(list("\uFDD1proc"),all_dash_regs,list(list("\uFDD1assign","\uFDD1continue",list("\uFDD1label",proc_dash_return)),list("\uFDD1assign","\uFDD1val",list("\uFDD1op","\uFDD1compiled-procedure-entry"),list("\uFDD1reg","\uFDD1proc")),list("\uFDD1goto",list("\uFDD1reg","\uFDD1val")),proc_dash_return,list("\uFDD1assign",target,list("\uFDD1reg","\uFDD1val")),list("\uFDD1goto",list("\uFDD1label",linkage))));
 }))();
-} else {return (function() {if((eq_p_(target,string_dash__gt_symbol("val")) && eq_p_(linkage,string_dash__gt_symbol("return")))) {return ((function() {return make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc"),string_dash__gt_symbol("continue")),all_dash_regs,list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("val"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("compiled_dash_procedure_dash_entry")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")))));
+} else {return (function() {if((eq_p_(target,"\uFDD1val") && eq_p_(linkage,"\uFDD1return"))) {return ((function() {return make_dash_instruction_dash_sequence(list("\uFDD1proc","\uFDD1continue"),all_dash_regs,list(list("\uFDD1assign","\uFDD1val",list("\uFDD1op","\uFDD1compiled-procedure-entry"),list("\uFDD1reg","\uFDD1proc")),list("\uFDD1goto",list("\uFDD1reg","\uFDD1val"))));
 }))();
-} else {return (function() {if((not(eq_p_(target,string_dash__gt_symbol("val"))) && eq_p_(linkage,string_dash__gt_symbol("return")))) {return ((function() {throw(str("compile-proc-app1: return linkage, target not val: ",target));
+} else {return (function() {if((not(eq_p_(target,"\uFDD1val")) && eq_p_(linkage,"\uFDD1return"))) {return ((function() {throw(str("compile-proc-app1: return linkage, target not val: ",target));
 }))();
 } else {return false;
 }})()
@@ -822,12 +822,12 @@ return (function() {if((eq_p_(target,string_dash__gt_symbol("val")) && not(eq_p_
 ;
 });
 var next_p_ = (function(exp){
-return (list_p_(exp) && eq_p_(car(exp),string_dash__gt_symbol("next")));
+return (list_p_(exp) && eq_p_(car(exp),"\uFDD1next"));
 });
 var compile_dash_next = (function(linkage){
-return end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(_emptylst,_emptylst,list(list(string_dash__gt_symbol("next")))));
+return end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(_emptylst,_emptylst,list(list("\uFDD1next"))));
 });
-var all_dash_regs = list(string_dash__gt_symbol("env"),string_dash__gt_symbol("proc"),string_dash__gt_symbol("val"),string_dash__gt_symbol("arg1"),string_dash__gt_symbol("continue"),string_dash__gt_symbol("exp"));
+var all_dash_regs = list("\uFDD1env","\uFDD1proc","\uFDD1val","\uFDD1arg1","\uFDD1continue","\uFDD1exp");
 var compile = (function(exp,target,linkage){
 return (function() {if(next_p_(exp)) {return ((function() {return compile_dash_next(linkage);
 }))();
@@ -847,7 +847,7 @@ return (function() {if(next_p_(exp)) {return ((function() {return compile_dash_n
 }))();
 } else {return (function() {if(begin_p_(exp)) {return ((function() {return compile_dash_sequence(begin_dash_actions(exp),target,linkage);
 }))();
-} else {return (function() {if(application_p_(exp)) {return ((function() {return (function() {if(eq_p_(car(exp),string_dash__gt_symbol("break"))) {return ((function() {should_dash_break = true;
+} else {return (function() {if(application_p_(exp)) {return ((function() {return (function() {if(eq_p_(car(exp),"\uFDD1break")) {return ((function() {should_dash_break = true;
 return empty_dash_instruction_dash_sequence();
 }))();
 } else {return compile_dash_application(exp,target,linkage);
@@ -877,12 +877,12 @@ return empty_dash_instruction_dash_sequence();
 }})()
 ;
 });
-var runtime_dash_ops = dict(string_dash__gt_symbol("make_dash_compiled_dash_procedure"),make_dash_compiled_dash_procedure,string_dash__gt_symbol("compiled_dash_procedure_p_"),compiled_dash_procedure_p_,string_dash__gt_symbol("compiled_dash_procedure_dash_env"),compiled_dash_procedure_dash_env,string_dash__gt_symbol("compiled_dash_procedure_dash_entry"),compiled_dash_procedure_dash_entry,string_dash__gt_symbol("extend_dash_environment"),extend_dash_environment,string_dash__gt_symbol("lookup_dash_variable_dash_value"),lookup_dash_variable_dash_value,string_dash__gt_symbol("define_dash_variable_excl_"),define_dash_variable_excl_,string_dash__gt_symbol("list"),list,string_dash__gt_symbol("cons"),cons,string_dash__gt_symbol("primitive_dash_procedure_p_"),primitive_dash_procedure_p_,string_dash__gt_symbol("apply_dash_primitive_dash_procedure"),apply_dash_primitive_dash_procedure,string_dash__gt_symbol("false_p_"),false_p_,string_dash__gt_symbol("true_p_"),true_p_);
+var runtime_dash_ops = dict("\uFDD1make-compiled-procedure",make_dash_compiled_dash_procedure,"\uFDD1compiled-procedure?",compiled_dash_procedure_p_,"\uFDD1compiled-procedure-env",compiled_dash_procedure_dash_env,"\uFDD1compiled-procedure-entry",compiled_dash_procedure_dash_entry,"\uFDD1extend-environment",extend_dash_environment,"\uFDD1lookup-variable-value",lookup_dash_variable_dash_value,"\uFDD1define-variable!",define_dash_variable_excl_,"\uFDD1list",list,"\uFDD1cons",cons,"\uFDD1primitive-procedure?",primitive_dash_procedure_p_,"\uFDD1apply-primitive-procedure",apply_dash_primitive_dash_procedure,"\uFDD1false?",false_p_,"\uFDD1true?",true_p_);
 var global_dash_environment = setup_dash_environment();
-module.exports = dict(string_dash__gt_symbol("compile"),(function(src){
-return statements(compile(src,string_dash__gt_symbol("val"),string_dash__gt_symbol("next")));
-}),string_dash__gt_symbol("ops"),runtime_dash_ops,string_dash__gt_symbol("first_dash_frame"),first_dash_frame,string_dash__gt_symbol("install_dash_primitives"),install_dash_primitives,string_dash__gt_symbol("stepping_dash_mode"),(function() {always_dash_should_dash_break = true;
-}),string_dash__gt_symbol("global_dash_environment"),global_dash_environment);
+module["exports"] = dict("\uFDD1compile",(function(src){
+return statements(compile(src,"\uFDD1val","\uFDD1next"));
+}),"\uFDD1ops",runtime_dash_ops,"\uFDD1first-frame",first_dash_frame,"\uFDD1install-primitives",install_dash_primitives,"\uFDD1stepping-mode",(function() {always_dash_should_dash_break = true;
+}),"\uFDD1primitive-procedure?",primitive_dash_procedure_p_,"\uFDD1compiled-procedure?",compiled_dash_procedure_p_,"\uFDD1global-environment",global_dash_environment);
 
 
 });
@@ -891,10 +891,10 @@ require.define("/machine.js", function (require, module, exports, __dirname, __f
 var __args = process.argv.slice(2);var fs = require("fs");var compiler = require("./compiler");var make_dash_machine = (function(regs,ops,controller){
 return ((function() {var o1 = (function(machine){
 for_dash_each((function(reg){
-return machine.allocate_dash_register(reg);
+return machine["allocate-register"](reg);
 }),regs);
-machine.install_dash_operations(ops);
-machine.install_dash_instruction_dash_sequence(assemble(controller,machine));
+machine["install-operations"](ops);
+machine["install-instruction-sequence"](assemble(controller,machine));
 return machine;
 });
 var o2 = make_dash_new_dash_machine();
@@ -902,19 +902,19 @@ return o1(o2);
 }))();
 });
 var make_dash_register = (function() {return ((function() {var o3 = (function(contents){
-return dict(string_dash__gt_symbol("get"),(function() {return contents;
-}),string_dash__gt_symbol("set_excl_"),(function(val){
+return dict("\uFDD1get",(function() {return contents;
+}),"\uFDD1set!",(function(val){
 contents = val;
 }));
 });
-var o4 = string_dash__gt_symbol("_unassigned_");
+var o4 = "\uFDD1_unassigned_";
 return o3(o4);
 }))();
 });
 var make_dash_stack = (function() {return ((function() {var o5 = (function(s){
-return dict(string_dash__gt_symbol("push"),(function(x){
+return dict("\uFDD1push",(function(x){
 s = cons(x,s);
-}),string_dash__gt_symbol("pop_excl_"),(function() {return (function() {if(null_p_(s)) {throw("pop: empty stack");
+}),"\uFDD1pop!",(function() {return (function() {if(null_p_(s)) {throw("pop: empty stack");
 } else {return ((function() {var o7 = (function(top){
 s = cdr(s);
 return top;
@@ -924,7 +924,7 @@ return o7(o8);
 }))();
 }})()
 ;
-}),string_dash__gt_symbol("initialize"),(function() {s = _emptylst;
+}),"\uFDD1initialize",(function() {s = _emptylst;
 }));
 });
 var o6 = _emptylst;
@@ -952,7 +952,7 @@ return (function() {if(on_dash_break) {return on_dash_break();
 ;
 });
 var execute = (function() {return ((function() {var loop = (function() {return ((function() {var o19 = (function(insts){
-return (function() {if(null_p_(insts)) {return string_dash__gt_symbol("done");
+return (function() {if(null_p_(insts)) {return "\uFDD1done";
 } else {return ((function() {var o21 = (function(inst){
 return (function() {if(not(paused)) {return ((function() {var o23 = (function(proc){
 (function() {if(proc) {return proc();
@@ -975,30 +975,30 @@ return o21(o22);
 }})()
 ;
 });
-var o20 = pc.get();
+var o20 = pc["get"]();
 return o19(o20);
 }))();
 });
 return trampoline(loop());
 }))();
 });
-return dict(string_dash__gt_symbol("start"),(function() {pc.set_excl_(instruction_dash_sequence);
+return dict("\uFDD1start",(function() {pc["set!"](instruction_dash_sequence);
 return execute();
-}),string_dash__gt_symbol("install_dash_instruction_dash_sequence"),(function(seq){
+}),"\uFDD1install-instruction-sequence",(function(seq){
 instruction_dash_sequence = seq;
-}),string_dash__gt_symbol("allocate_dash_register"),allocate_dash_register,string_dash__gt_symbol("get_dash_register"),lookup_dash_register,string_dash__gt_symbol("install_dash_operations"),(function(dct){
+}),"\uFDD1allocate-register",allocate_dash_register,"\uFDD1get-register",lookup_dash_register,"\uFDD1install-operations",(function(dct){
 ops = dict_dash_merge(ops,dct);
-}),string_dash__gt_symbol("stack"),(function() {return stack;
-}),string_dash__gt_symbol("operations"),(function() {return ops;
-}),string_dash__gt_symbol("registers"),(function() {return keys(reg_dash_table);
-}),string_dash__gt_symbol("pause"),pause,string_dash__gt_symbol("proceed"),(function() {paused = false;
+}),"\uFDD1stack",(function() {return stack;
+}),"\uFDD1operations",(function() {return ops;
+}),"\uFDD1registers",(function() {return keys(reg_dash_table);
+}),"\uFDD1pause",pause,"\uFDD1proceed",(function() {paused = false;
 return execute();
-}),string_dash__gt_symbol("set_dash_break_dash_handler"),(function(func){
+}),"\uFDD1set-break-handler",(function(func){
 on_dash_break = func;
-}),string_dash__gt_symbol("on_dash_input"),(function(txt){
+}),"\uFDD1on-input",(function(txt){
 return ((function() {var o25 = (function(exp){
-(function() {if(eq_p_(car(exp),string_dash__gt_symbol("read_dash_into_dash_reg"))) {return ((function() {var o27 = (function(reg){
-return reg.set_excl_(read(txt));
+(function() {if(eq_p_(car(exp),"\uFDD1read-into-reg")) {return ((function() {var o27 = (function(reg){
+return reg["set!"](read(txt));
 });
 var o28 = lookup_dash_register(cadr(exp));
 return o27(o28);
@@ -1011,13 +1011,13 @@ stop_dash_stdin();
 paused = false;
 return execute();
 });
-var o26 = instruction_dash_text(car(pc.get()));
+var o26 = instruction_dash_text(car(pc["get"]()));
 return o25(o26);
 }))();
 }));
 });
-var o17 = dict(string_dash__gt_symbol("initialize_dash_stack"),stack.initialize);
-var o18 = dict(string_dash__gt_symbol("flag"),flag,string_dash__gt_symbol("pc"),pc);
+var o17 = dict("\uFDD1initialize-stack",stack["initialize"]);
+var o18 = dict("\uFDD1flag",flag,"\uFDD1pc",pc);
 return o16(o17,o18);
 }))();
 });
@@ -1031,10 +1031,10 @@ return o9(o10,o11,o12,o13,o14,o15);
 }))();
 });
 var get_dash_register_dash_contents = (function(machine,name){
-return dict_dash_ref(machine.get_dash_register(name),string_dash__gt_symbol("get"))();
+return dict_dash_ref(machine["get-register"](name),"\uFDD1get")();
 });
 var set_dash_register_dash_contents_excl_ = (function(machine,name,val){
-return dict_dash_ref(machine.get_dash_register(name),string_dash__gt_symbol("set_excl_"))(val);
+return dict_dash_ref(machine["get-register"](name),"\uFDD1set!")(val);
 });
 var assemble = (function(controller,machine){
 return extract_dash_labels(controller,(function(insts,labels){
@@ -1076,10 +1076,10 @@ return o36(o37);
 }))();
 }),labels);
 });
-var o32 = machine.get_dash_register(string_dash__gt_symbol("pc"));
-var o33 = machine.get_dash_register(string_dash__gt_symbol("flag"));
-var o34 = machine.stack();
-var o35 = machine.operations();
+var o32 = machine["get-register"]("\uFDD1pc");
+var o33 = machine["get-register"]("\uFDD1flag");
+var o34 = machine["stack"]();
+var o35 = machine["operations"]();
 return o31(o32,o33,o34,o35);
 }))();
 });
@@ -1130,31 +1130,31 @@ return o38(o39);
 }))();
 });
 var advance_dash_pc = (function(pc){
-return pc.set_excl_(cdr(pc.get()));
+return pc["set!"](cdr(pc["get"]()));
 });
 var make_dash_execution_dash_procedure = (function(inst,labels,machine,pc,flag,stack,ops){
 return ((function() {var o40 = (function(top){
-return (function() {if(_eq__eq_(top,string_dash__gt_symbol("assign"))) {return ((function() {return make_dash_assign(inst,machine,labels,ops,pc);
+return (function() {if(_eq__eq_(top,"\uFDD1assign")) {return ((function() {return make_dash_assign(inst,machine,labels,ops,pc);
 }))();
-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("test"))) {return ((function() {return make_dash_test(inst,machine,labels,ops,flag,pc);
+} else {return (function() {if(_eq__eq_(top,"\uFDD1test")) {return ((function() {return make_dash_test(inst,machine,labels,ops,flag,pc);
 }))();
-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("branch"))) {return ((function() {return make_dash_branch(inst,machine,labels,flag,pc);
+} else {return (function() {if(_eq__eq_(top,"\uFDD1branch")) {return ((function() {return make_dash_branch(inst,machine,labels,flag,pc);
 }))();
-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("goto"))) {return ((function() {return make_dash_goto(inst,machine,labels,pc);
+} else {return (function() {if(_eq__eq_(top,"\uFDD1goto")) {return ((function() {return make_dash_goto(inst,machine,labels,pc);
 }))();
-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("save"))) {return ((function() {return make_dash_save(inst,machine,stack,pc);
+} else {return (function() {if(_eq__eq_(top,"\uFDD1save")) {return ((function() {return make_dash_save(inst,machine,stack,pc);
 }))();
-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("restore"))) {return ((function() {return make_dash_restore(inst,machine,stack,pc);
+} else {return (function() {if(_eq__eq_(top,"\uFDD1restore")) {return ((function() {return make_dash_restore(inst,machine,stack,pc);
 }))();
-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("perform"))) {return ((function() {return make_dash_perform(inst,machine,labels,ops,pc);
+} else {return (function() {if(_eq__eq_(top,"\uFDD1perform")) {return ((function() {return make_dash_perform(inst,machine,labels,ops,pc);
 }))();
-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("read_dash_into_dash_reg"))) {return ((function() {return make_dash_read(inst,machine,pc);
+} else {return (function() {if(_eq__eq_(top,"\uFDD1read-into-reg")) {return ((function() {return make_dash_read(inst,machine,pc);
 }))();
-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("break"))) {return ((function() {return make_dash_break(machine,pc);
+} else {return (function() {if(_eq__eq_(top,"\uFDD1break")) {return ((function() {return make_dash_break(machine,pc);
 }))();
-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("next"))) {return ((function() {return make_dash_next(machine,pc);
+} else {return (function() {if(_eq__eq_(top,"\uFDD1next")) {return ((function() {return make_dash_next(machine,pc);
 }))();
-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("nop"))) {return ((function() {return make_dash_nop(machine,pc);
+} else {return (function() {if(_eq__eq_(top,"\uFDD1nop")) {return ((function() {return make_dash_nop(machine,pc);
 }))();
 } else {return false;
 }})()
@@ -1187,7 +1187,7 @@ return o40(o41);
 var make_dash_assign = (function(inst,machine,labels,ops,pc){
 return ((function() {var o42 = (function(target,expr){
 return ((function() {var o45 = (function(value_dash_proc){
-return (function() {target.set_excl_(value_dash_proc());
+return (function() {target["set!"](value_dash_proc());
 return advance_dash_pc(pc);
 });
 });
@@ -1198,7 +1198,7 @@ var o46 = (function() {if(operation_dash_exp_p_(expr)) {return make_dash_operati
 return o45(o46);
 }))();
 });
-var o43 = machine.get_dash_register(cadr(inst));
+var o43 = machine["get-register"](cadr(inst));
 var o44 = cddr(inst);
 return o42(o43,o44);
 }))();
@@ -1206,7 +1206,7 @@ return o42(o43,o44);
 var make_dash_test = (function(inst,machine,labels,ops,flag,pc){
 return ((function() {var o47 = (function(condition){
 return (function() {if(operation_dash_exp_p_(condition)) {return ((function() {var o49 = (function(condition_dash_proc){
-return (function() {flag.set_excl_(condition_dash_proc());
+return (function() {flag["set!"](condition_dash_proc());
 return advance_dash_pc(pc);
 });
 });
@@ -1224,7 +1224,7 @@ return o47(o48);
 var make_dash_branch = (function(inst,machine,labels,flag,pc){
 return ((function() {var o51 = (function(dest){
 return (function() {if(label_dash_exp_p_(dest)) {return ((function() {var o53 = (function(insts){
-return (function() {return (function() {if(flag.get()) {return pc.set_excl_(insts);
+return (function() {return (function() {if(flag["get"]()) {return pc["set!"](insts);
 } else {return advance_dash_pc(pc);
 }})()
 ;
@@ -1244,7 +1244,7 @@ return o51(o52);
 var make_dash_goto = (function(inst,machine,labels,pc){
 return ((function() {var o55 = (function(dest){
 return (function() {if(label_dash_exp_p_(dest)) {return ((function() {return ((function() {var o57 = (function(insts){
-return (function() {return pc.set_excl_(insts);
+return (function() {return pc["set!"](insts);
 });
 });
 var o58 = lookup_dash_label(labels,label_dash_exp_dash_label(dest));
@@ -1252,10 +1252,10 @@ return o57(o58);
 }))();
 }))();
 } else {return (function() {if(register_dash_exp_p_(dest)) {return ((function() {return ((function() {var o59 = (function(reg){
-return (function() {return pc.set_excl_(reg.get());
+return (function() {return pc["set!"](reg["get"]());
 });
 });
-var o60 = machine.get_dash_register(register_dash_exp_dash_reg(dest));
+var o60 = machine["get-register"](register_dash_exp_dash_reg(dest));
 return o59(o60);
 }))();
 }))();
@@ -1272,21 +1272,21 @@ return o55(o56);
 });
 var make_dash_save = (function(inst,machine,stack,pc){
 return ((function() {var o61 = (function(reg){
-return (function() {stack.push(reg.get());
+return (function() {stack["push"](reg["get"]());
 return advance_dash_pc(pc);
 });
 });
-var o62 = machine.get_dash_register(cadr(inst));
+var o62 = machine["get-register"](cadr(inst));
 return o61(o62);
 }))();
 });
 var make_dash_restore = (function(inst,machine,stack,pc){
 return ((function() {var o63 = (function(reg){
-return (function() {reg.set_excl_(stack.pop_excl_());
+return (function() {reg["set!"](stack["pop!"]());
 return advance_dash_pc(pc);
 });
 });
-var o64 = machine.get_dash_register(cadr(inst));
+var o64 = machine["get-register"](cadr(inst));
 return o63(o64);
 }))();
 });
@@ -1310,25 +1310,25 @@ return o65(o66);
 });
 var make_dash_read = (function(inst,machine,pc){
 return ((function() {var o69 = (function(reg){
-return (function() {start_dash_stdin(string_dash__gt_symbol("repl"));
-return machine.pause();
+return (function() {start_dash_stdin("\uFDD1repl");
+return machine["pause"]();
 });
 });
-var o70 = machine.get_dash_register(cadr(inst));
+var o70 = machine["get-register"](cadr(inst));
 return o69(o70);
 }))();
 });
 var make_dash_break = (function(machine,pc){
 return (function() {advance_dash_pc(pc);
-start_dash_stdin(string_dash__gt_symbol("break"));
-println(str("break: ",get_dash_register_dash_contents(machine,string_dash__gt_symbol("exp"))));
-return machine.pause();
+start_dash_stdin("\uFDD1break");
+println(str("break: ",get_dash_register_dash_contents(machine,"\uFDD1exp")));
+return machine["pause"]();
 });
 });
 var make_dash_next = (function(machine,pc){
 return (function() {advance_dash_pc(pc);
-machine.pause();
-return setTimeout((function() {return machine.proceed();
+machine["pause"]();
+return setTimeout((function() {return machine["proceed"]();
 }),1);
 });
 });
@@ -1354,10 +1354,10 @@ return o73(o74);
 }))();
 }))();
 } else {return (function() {if(register_dash_exp_p_(exp)) {return ((function() {return ((function() {var o75 = (function(r){
-return (function() {return r.get();
+return (function() {return r["get"]();
 });
 });
-var o76 = machine.get_dash_register(cadr(exp));
+var o76 = machine["get-register"](cadr(exp));
 return o75(o76);
 }))();
 }))();
@@ -1371,19 +1371,19 @@ return o75(o76);
 ;
 });
 var label_dash_exp_p_ = (function(exp){
-return (list_p_(exp) && _eq__eq_(car(exp),string_dash__gt_symbol("label")));
+return (list_p_(exp) && _eq__eq_(car(exp),"\uFDD1label"));
 });
 var label_dash_exp_dash_label = (function(exp){
 return cadr(exp);
 });
 var register_dash_exp_p_ = (function(exp){
-return (list_p_(exp) && _eq__eq_(car(exp),string_dash__gt_symbol("reg")));
+return (list_p_(exp) && _eq__eq_(car(exp),"\uFDD1reg"));
 });
 var register_dash_exp_dash_reg = (function(exp){
 return cadr(exp);
 });
 var const_dash_exp_p_ = (function(exp){
-return (list_p_(exp) && _eq__eq_(car(exp),string_dash__gt_symbol("const")));
+return (list_p_(exp) && _eq__eq_(car(exp),"\uFDD1const"));
 });
 var const_dash_exp_dash_value = (function(exp){
 return cadr(exp);
@@ -1403,7 +1403,7 @@ return o77(o78,o79);
 }))();
 });
 var operation_dash_exp_p_ = (function(exp){
-return (list_p_(exp) && eq_p_(car(car(exp)),string_dash__gt_symbol("op")));
+return (list_p_(exp) && eq_p_(car(car(exp)),"\uFDD1op"));
 });
 var lookup_dash_prim = (function(sym,ops){
 return ((function() {var o80 = (function(prim){
@@ -1422,20 +1422,20 @@ var start_dash_stdin = (function(mode){
 stdin_dash_mode = mode;
 return get_dash_stdin_dash_handler()();
 });
-var stdin_dash_handler = (function() {return process.stdin.resume();
+var stdin_dash_handler = (function() {return process["stdin"]["resume"]();
 });
 var get_dash_stdin_dash_handler = (function() {return stdin_dash_handler;
 });
 var set_dash_stdin_dash_handler_excl_ = (function(func){
 stdin_dash_handler = func;
 });
-var stop_dash_stdin = (function() {return process.stdin.pause();
+var stop_dash_stdin = (function() {return process["stdin"]["pause"]();
 });
-process.stdin.on("data",(function(txt){
+process["stdin"]["on"]("data",(function(txt){
 return ((function() {var o82 = (function(txt){
-return (function() {if(_eq_(stdin_dash_mode,string_dash__gt_symbol("repl"))) {return ((function() {return on_dash_repl_dash_input(txt);
+return (function() {if(_eq_(stdin_dash_mode,"\uFDD1repl")) {return ((function() {return on_dash_repl_dash_input(txt);
 }))();
-} else {return (function() {if(_eq_(stdin_dash_mode,string_dash__gt_symbol("break"))) {return ((function() {return on_dash_break_dash_input(txt);
+} else {return (function() {if(_eq_(stdin_dash_mode,"\uFDD1break")) {return ((function() {return on_dash_break_dash_input(txt);
 }))();
 } else {return false;
 }})()
@@ -1447,12 +1447,21 @@ var o83 = (txt + "");
 return o82(o83);
 }))();
 }));
-process.stdin.pause();
-var continue_dash_machine = (function() {process.stdin.pause();
-return current_dash_machine.proceed();
+process["stdin"]["pause"]();
+var continue_dash_machine = (function() {process["stdin"]["pause"]();
+return current_dash_machine["proceed"]();
 });
 var inspect_dash_var = (function(v){
-return inspect(v);
+return (function() {if((v && compiler["compiled-procedure?"](v))) {return ((function() {return "<compiled-function>";
+}))();
+} else {return (function() {if((v && compiler["primitive-procedure?"](v))) {return ((function() {return "<native-function>";
+}))();
+} else {return ((function() {return inspect(v);
+}))();
+}})()
+;
+}})()
+;
 });
 var inspect_dash_environment = (function() {return ((function() {var o84 = (function(frame){
 return fold((function(k,acc){
@@ -1465,7 +1474,7 @@ return o86(o87,o88);
 }))();
 }),"",keys(frame));
 });
-var o85 = compiler.first_dash_frame(get_dash_register_dash_contents(current_dash_machine,string_dash__gt_symbol("env")));
+var o85 = compiler["first-frame"](get_dash_register_dash_contents(current_dash_machine,"\uFDD1env"));
 return o84(o85);
 }))();
 });
@@ -1478,27 +1487,27 @@ return (function() {if(_eq_(txt,"v")) {return ((function() {return println(inspe
 }})()
 ;
 });
-var o90 = txt.trim();
+var o90 = txt["trim"]();
 return o89(o90);
 }))();
 });
 var current_dash_machine = false;
 var on_dash_repl_dash_input = (function(txt){
-return current_dash_machine.on_dash_input(txt);
+return current_dash_machine["on-input"](txt);
 });
 var on_dash_break_dash_input = debugger_dash_handle;
 var feed_dash_asm = (function(src){
 return ((function() {var o91 = (function(machine){
-set_dash_register_dash_contents_excl_(machine,string_dash__gt_symbol("env"),compiler.global_dash_environment);
+set_dash_register_dash_contents_excl_(machine,"\uFDD1env",compiler["global-environment"]);
 current_dash_machine = machine;
 return machine;
 });
-var o92 = make_dash_machine(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("proc"),string_dash__gt_symbol("val"),string_dash__gt_symbol("arg1"),string_dash__gt_symbol("continue"),string_dash__gt_symbol("input"),string_dash__gt_symbol("exp")),compiler.ops,src);
+var o92 = make_dash_machine(list("\uFDD1env","\uFDD1proc","\uFDD1val","\uFDD1arg1","\uFDD1continue","\uFDD1input","\uFDD1exp"),compiler["ops"],src);
 return o91(o92);
 }))();
 });
-module.exports = dict(string_dash__gt_symbol("feed_dash_asm"),feed_dash_asm,string_dash__gt_symbol("set_dash_stdin_dash_handler_excl_"),set_dash_stdin_dash_handler_excl_,string_dash__gt_symbol("instance"),(function() {return current_dash_machine;
-}),string_dash__gt_symbol("inspect_dash_environment"),inspect_dash_environment,string_dash__gt_symbol("get_dash_register_dash_contents"),get_dash_register_dash_contents,string_dash__gt_symbol("result"),(function() {return get_dash_register_dash_contents(current_dash_machine,string_dash__gt_symbol("val"));
+module["exports"] = dict("\uFDD1feed-asm",feed_dash_asm,"\uFDD1set-stdin-handler!",set_dash_stdin_dash_handler_excl_,"\uFDD1instance",(function() {return current_dash_machine;
+}),"\uFDD1inspect-environment",inspect_dash_environment,"\uFDD1get-register-contents",get_dash_register_dash_contents,"\uFDD1result",(function() {return get_dash_register_dash_contents(current_dash_machine,"\uFDD1val");
 }));
 
 
@@ -1512,32 +1521,32 @@ require.define("fs", function (require, module, exports, __dirname, __filename)
 require.define("/vm.js", function (require, module, exports, __dirname, __filename) {
     var __args = process.argv.slice(2);var compiler = require("./compiler");var machine = require("./machine");var run = (function(src){
 return ((function() {var o1 = (function(statements,m){
-m.set_dash_break_dash_handler(break_dash_handler);
-return m.start();
+m["set-break-handler"](break_dash_handler);
+return m["start"]();
 });
-var o2 = compiler.compile(src);
-var o3 = machine.feed_dash_asm(o2);
+var o2 = compiler["compile"](src);
+var o3 = machine["feed-asm"](o2);
 return o1(o2,o3);
 }))();
 });
 var resume = (function() {return ((function() {var o4 = (function(m){
-return m.proceed();
+return m["proceed"]();
 });
-var o5 = machine.instance();
+var o5 = machine["instance"]();
 return o4(o5);
 }))();
 });
 var asm = (function(src){
-return pp(compiler.compile(src));
+return pp(compiler["compile"](src));
 });
 var break_dash_handler = false;
 var set_dash_break_dash_handler = (function(func){
 break_dash_handler = func;
 });
 var install_dash_primitives = (function(procs){
-return compiler.install_dash_primitives(procs);
+return compiler["install-primitives"](procs);
 });
-module.exports = dict(string_dash__gt_symbol("run"),run,string_dash__gt_symbol("asm"),asm,string_dash__gt_symbol("stepping_dash_mode"),compiler.stepping_dash_mode,string_dash__gt_symbol("set_dash_break_dash_handler"),set_dash_break_dash_handler,string_dash__gt_symbol("install_dash_primitives"),install_dash_primitives);
+module["exports"] = dict("\uFDD1run",run,"\uFDD1asm",asm,"\uFDD1stepping-mode",compiler["stepping-mode"],"\uFDD1set-break-handler",set_dash_break_dash_handler,"\uFDD1install-primitives",install_dash_primitives);
 
 
 });

{'commit': 'diff --git a/Makefile b/Makefile\nindex fa37fd9..3b9ec8f 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -8,16 +8,16 @@ endif\n all: compiler\n \n parser.js: parser.ol\n-\t$(NODE_MAKE) parser.ol > parser2.js && mv parser2.js parser.js\n+\t$(NODE_MAKE) _current_runtime parser.ol > parser2.js && mv parser2.js parser.js\n \n grammar.js: grammar.ol\n-\t$(NODE_MAKE) grammar.ol > grammar2.js && mv grammar2.js grammar.js\n+\t$(NODE_MAKE) _current_runtime grammar.ol > grammar2.js && mv grammar2.js grammar.js\n \n compiler.js: compiler.ol\n-\t$(NODE_MAKE) compiler.ol > compiler2.js && mv compiler2.js compiler.js\n+\t$(NODE_MAKE) _current_runtime compiler.ol > compiler2.js && mv compiler2.js compiler.js\n \n backends/js.js: backends/js.ol\n-\t$(NODE_MAKE) backends/js.ol > backends/js2.js && mv backends/js2.js backends/js.js\n+\t$(NODE_MAKE) _current_runtime backends/js.ol > backends/js2.js && mv backends/js2.js backends/js.js\n \n test.js: test.ol\n \t$(NODE_MAKE) _current_runtime _with_eval test.ol > test2.js && mv test2.js test.js\ndiff --git a/a.js b/a.js\nnew file mode 100644\nindex 0000000..1539872\n--- /dev/null\n+++ b/a.js\n@@ -0,0 +1,2488 @@\n+var util = require("util");var type = (function(obj){\n+return (function() {if(number_p_(obj)) {return ((function() {return "\\uFDD1number";\n+}))();\n+} else {return (function() {if(boolean_p_(obj)) {return ((function() {return "\\uFDD1boolean";\n+}))();\n+} else {return (function() {if(string_p_(obj)) {return ((function() {return "\\uFDD1string";\n+}))();\n+} else {return (function() {if(null_p_(obj)) {return ((function() {return "\\uFDD1null";\n+}))();\n+} else {return (function() {if(list_p_(obj)) {return ((function() {return "\\uFDD1list";\n+}))();\n+} else {return (function() {if(vector_p_(obj)) {return ((function() {return "\\uFDD1vector";\n+}))();\n+} else {return (function() {if(dict_p_(obj)) {return ((function() {return "\\uFDD1dict";\n+}))();\n+} else {return false;\n+}})()\n+;\n+}})()\n+;\n+}})()\n+;\n+}})()\n+;\n+}})()\n+;\n+}})()\n+;\n+}})()\n+;\n+});\n+var number_p_ = (function(obj){\n+return _eq__eq_(typeof obj,"number");\n+});\n+var string_p_ = (function(obj){\n+return (_eq__eq_(typeof obj,"string") && not(_eq__eq_(obj[0],"\\uFDD1")));\n+});\n+var symbol_p_ = (function(obj){\n+return (_eq__eq_(typeof obj,"string") && _eq__eq_(obj[0],"\\uFDD1"));\n+});\n+var boolean_p_ = (function(obj){\n+return (eq_p_(obj,true) || eq_p_(obj,false));\n+});\n+var null_p_ = (function(obj){\n+return (!!obj && not(eq_p_(obj["length"],undefined)) && eq_p_(obj["length"],1) && eq_p_(vector_dash_ref(obj,0),null));\n+});\n+var list_p_ = (function(obj){\n+return (!!obj && not(eq_p_(obj["length"],undefined)) && not(eq_p_(obj["list"],undefined)));\n+});\n+var vector_p_ = (function(obj){\n+return (not(list_p_(obj)) && not(null_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && not(eq_p_(obj["length"],undefined)));\n+});\n+var dict_p_ = (function(obj){\n+return (not(symbol_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && eq_p_(obj["length"],undefined));\n+});\n+var function_p_ = (function(obj){\n+return eq_p_(typeof obj,"function");\n+});\n+var literal_p_ = (function(x){\n+return (number_p_(x) || string_p_(x) || boolean_p_(x) || null_p_(x));\n+});\n+var str = (function() {\n+var args = vector_dash__gt_list(Array.prototype.slice.call(arguments));\n+return fold((function(el,acc){\n+return (acc + (function() {if(string_p_(el)) {return el;\n+} else {return inspect(el);\n+}})()\n+);\n+}),"",args);\n+});\n+var string_dash__gt_symbol = (function(str){\n+return ((function() {var o1 = (function(s){\n+return ("\\uFDD1" + s);\n+});\n+var o2 = str;\n+return o1(o2);\n+}))();\n+});\n+var symbol_dash__gt_string = (function(sym){\n+return ((function() {var o3 = (function(s){\n+return s;\n+});\n+var o4 = sym["substring"](1);\n+return o3(o4);\n+}))();\n+});\n+var _emptylst = [null];\n+var list = (function() {\n+var args = vector_dash__gt_list(Array.prototype.slice.call(arguments));\n+return args;\n+});\n+var cons = (function(obj,lst){\n+return ((function() {var o5 = (function(res){\n+res.list = true;return res;\n+});\n+var o6 = [obj, lst];\n+return o5(o6);\n+}))();\n+});\n+var car = (function(lst){\n+return lst[0]});\n+var cdr = (function(lst){\n+return lst[1]});\n+var cadr = (function(lst){\n+return car(cdr(lst));\n+});\n+var cddr = (function(lst){\n+return cdr(cdr(lst));\n+});\n+var cdar = (function(lst){\n+return cdr(car(lst));\n+});\n+var caddr = (function(lst){\n+return car(cdr(cdr(lst)));\n+});\n+var cdddr = (function(lst){\n+return cdr(cdr(cdr(lst)));\n+});\n+var cadar = (function(lst){\n+return car(cdr(car(lst)));\n+});\n+var cddar = (function(lst){\n+return cdr(cdr(car(lst)));\n+});\n+var caadr = (function(lst){\n+return car(car(cdr(lst)));\n+});\n+var cdadr = (function(lst){\n+return cdr(car(cdr(lst)));\n+});\n+var list_dash_ref = (function(lst,i){\n+return ((function() {var loop = (function(lst,i){\n+return (function() {if(null_p_(lst)) {return ((function() {return false;\n+}))();\n+} else {return (function() {if(eq_p_(i,0)) {return ((function() {return car(lst);\n+}))();\n+} else {return ((function() {return loop(cdr(lst),(i - 1));\n+}))();\n+}})()\n+;\n+}})()\n+;\n+});\n+var o7 = lst;\n+var o8 = i;\n+return loop(o7,o8);\n+}))();\n+});\n+var length = (function(lst){\n+return fold((function(el,acc){\n+return (acc + 1);\n+}),0,lst);\n+});\n+var list_dash_append = (function(lst1,lst2){\n+return ((function() {var loop = (function(lst){\n+return (function() {if(null_p_(lst)) {return lst2;\n+} else {return cons(car(lst),loop(cdr(lst)));\n+}})()\n+;\n+});\n+var o9 = lst1;\n+return loop(o9);\n+}))();\n+});\n+var list_dash_find = (function(lst,val){\n+var rst = vector_dash__gt_list(Array.prototype.slice.call(arguments, 2));\n+return ((function() {var o10 = (function(access){\n+return ((function() {var loop = (function(lst){\n+return (function() {if(null_p_(lst)) {return false;\n+} else {return (function() {if(_eq__eq_(access(car(lst)),val)) {return lst;\n+} else {return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n+}})()\n+;\n+}})()\n+;\n+});\n+var o12 = lst;\n+return trampoline(loop(o12));\n+}))();\n+});\n+var o11 = (function() {if(null_p_(rst)) {return (function(x){\n+return x;\n+});\n+} else {return car(rst);\n+}})()\n+;\n+return o10(o11);\n+}))();\n+});\n+var map = (function(func,lst){\n+return (function() {if(null_p_(lst)) {return _emptylst;\n+} else {return cons(func(car(lst)),map(func,cdr(lst)));\n+}})()\n+;\n+});\n+var for_dash_each = (function(func,lst){\n+return ((function() {var loop = (function(lst){\n+return (function() {if(not(null_p_(lst))) {return ((function() {func(car(lst));\n+return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n+}))();\n+} else {return false;\n+}})()\n+;\n+});\n+var o13 = lst;\n+return trampoline(loop(o13));\n+}))();\n+});\n+var fold = (function(func,acc,lst){\n+return (function() {if(null_p_(lst)) {return acc;\n+} else {return fold(func,func(car(lst),acc),cdr(lst));\n+}})()\n+;\n+});\n+var reverse = (function(lst){\n+return (function() {if(null_p_(lst)) {return _emptylst;\n+} else {return list_dash_append(reverse(cdr(lst)),list(car(lst)));\n+}})()\n+;\n+});\n+var vector_dash__gt_list = (function(vec){\n+return ((function() {var loop = (function(i){\n+return (function() {if((i < vec.length)) {return cons(vector_dash_ref(vec,i),loop((i + 1)));\n+} else {return _emptylst}})()\n+;\n+});\n+var o14 = 0;\n+return loop(o14);\n+}))();\n+});\n+var make_dash_vector = (function(count,val){\n+return ((function() {var o15 = (function(v){\n+return ((function() {var loop = (function(i){\n+return (function() {if((i < count)) {return ((function() {vector_dash_put_excl_(v,i,val);\n+return vector("__tco_call",(function() {return loop((i + 1));\n+}));\n+}))();\n+} else {return v;\n+}})()\n+;\n+});\n+var o17 = 0;\n+return trampoline(loop(o17));\n+}))();\n+});\n+var o16 = new Array(count);\n+return o15(o16);\n+}))();\n+});\n+var vector = (function() {return Array.prototype.slice.call(arguments)});\n+var vector_dash_ref = (function(vec,i){\n+return vec[i]});\n+var vector_dash_put_excl_ = (function(vec,i,obj){\n+return vec[i] = obj});\n+var vector_dash_concat = (function(vec1,vec2){\n+return vec1.concat(vec2)});\n+var vector_dash_slice = (function(vec,start,end){\n+return vec.slice(start, end)});\n+var vector_dash_push_excl_ = (function(vec,obj){\n+return vec.push(obj)});\n+var vector_dash_find = (function(vec,val){\n+return ((function() {var loop = (function(i){\n+return (function() {if((i < vec.length)) {return (function() {if(eq_p_(vector_dash_ref(vec,i),val)) {return i;\n+} else {return vector("__tco_call",(function() {return loop((i + 1));\n+}));\n+}})()\n+;\n+} else {return false;\n+}})()\n+;\n+});\n+var o18 = 0;\n+return trampoline(loop(o18));\n+}))();\n+});\n+var vector_dash_length = (function(vec){\n+return vec["length"];\n+});\n+var list_dash__gt_vector = (function(lst){\n+var res = [];\n+for_dash_each((function(el){\n+return res["push"](el);\n+}),lst);\n+return res;\n+});\n+var vector_dash_map = (function(func,vec){\n+var res = [];\n+((function() {var loop = (function(i){\n+return (function() {if((i < vec["length"])) {return ((function() {res["push"](func(vector_dash_ref(vec,i)));\n+return vector("__tco_call",(function() {return loop((i + 1));\n+}));\n+}))();\n+} else {return false;\n+}})()\n+;\n+});\n+var o19 = 0;\n+return trampoline(loop(o19));\n+}))();\n+return res;\n+});\n+var vector_dash_for_dash_each = (function(func,vec){\n+return ((function() {var loop = (function(i){\n+return (function() {if((i < vec["length"])) {return ((function() {func(vector_dash_ref(vec,i));\n+return vector("__tco_call",(function() {return loop((i + 1));\n+}));\n+}))();\n+} else {return false;\n+}})()\n+;\n+});\n+var o20 = 0;\n+return trampoline(loop(o20));\n+}))();\n+});\n+var vector_dash_fold = (function(func,acc,vec){\n+return ((function() {var loop = (function(i,acc){\n+return (function() {if((i < vector_dash_length(vec))) {return vector("__tco_call",(function() {return loop((i + 1),func(vector_dash_ref(vec,i),acc));\n+}));\n+} else {return acc;\n+}})()\n+;\n+});\n+var o21 = 0;\n+var o22 = acc;\n+return trampoline(loop(o21,o22));\n+}))();\n+});\n+var dict = (function() {\n+var args = vector_dash__gt_list(Array.prototype.slice.call(arguments));\n+var res = {};\n+((function() {var loop = (function(lst){\n+return (function() {if(not(null_p_(lst))) {return ((function() {var o24 = (function(key,val){\n+dict_dash_put_excl_(res,key,val);\n+return vector("__tco_call",(function() {return loop(cddr(lst));\n+}));\n+});\n+var o25 = car(lst);\n+var o26 = cadr(lst);\n+return o24(o25,o26);\n+}))();\n+} else {return false;\n+}})()\n+;\n+});\n+var o23 = args;\n+return trampoline(loop(o23));\n+}))();\n+return res;\n+});\n+var dict_dash_put_excl_ = (function(dct,k,v){\n+return dct[k.substring(1)] = v});\n+var dict_dash_ref = (function(dct,k){\n+return dct[k.substring(1)]});\n+var dict_dash_map = (function(func,dct){\n+var res = dict();\n+((function() {var loop = (function(lst){\n+return (function() {if(not(null_p_(lst))) {return ((function() {var o28 = (function(k){\n+dict_dash_put_excl_(res,k,func(dict_dash_ref(dct,k)));\n+return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n+});\n+var o29 = car(lst);\n+return o28(o29);\n+}))();\n+} else {return false;\n+}})()\n+;\n+});\n+var o27 = keys(dct);\n+return trampoline(loop(o27));\n+}))();\n+return res;\n+});\n+var dict_dash_merge = (function(dct1,dct2){\n+return ((function() {var o30 = (function(res){\n+map((function(k){\n+return dict_dash_put_excl_(res,k,dict_dash_ref(dct1,k));\n+}),keys(dct1));\n+map((function(k){\n+return dict_dash_put_excl_(res,k,dict_dash_ref(dct2,k));\n+}),keys(dct2));\n+return res;\n+});\n+var o31 = dict();\n+return o30(o31);\n+}))();\n+});\n+var dict_dash__gt_vector = (function(dct){\n+var res = vector();\n+((function() {var loop = (function(lst){\n+return (function() {if(not(null_p_(lst))) {return ((function() {vector_dash_push_excl_(res,car(lst));\n+vector_dash_push_excl_(res,dict_dash_ref(dct,car(lst)));\n+return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n+}))();\n+} else {return false;\n+}})()\n+;\n+});\n+var o32 = keys(dct);\n+return trampoline(loop(o32));\n+}))();\n+return res;\n+});\n+var dict_dash__gt_list = (function(dct){\n+return vector_dash__gt_list(dict_dash__gt_vector(dct));\n+});\n+var keys = (function(dct){\n+return ((function() {var o33 = (function(res){\n+for(var k in dct) {\n+       res = cons(string_dash__gt_symbol(k), res);\n+    }return res;\n+});\n+var o34 = _emptylst;\n+return o33(o34);\n+}))();\n+});\n+var vals = (function(dct){\n+return map((function(k){\n+return dict_dash_ref(dct,k);\n+}),keys(dct));\n+});\n+var zip = (function(keys,vals){\n+var res = dict();\n+((function() {var loop = (function(ks,vs){\n+return (function() {if(not(null_p_(ks))) {return ((function() {dict_dash_put_excl_(res,car(ks),car(vs));\n+return vector("__tco_call",(function() {return loop(cdr(ks),cdr(vs));\n+}));\n+}))();\n+} else {return false;\n+}})()\n+;\n+});\n+var o35 = keys;\n+var o36 = vals;\n+return trampoline(loop(o35,o36));\n+}))();\n+return res;\n+});\n+var not = (function(obj){\n+return (typeof obj !== \'number\' && !obj);\n+});\n+var _eq__eq_ = (function(obj1,obj2){\n+return obj1 === obj2});\n+var _eq_ = (function(obj1,obj2){\n+return (function() {if((list_p_(obj1) && list_p_(obj2))) {return ((function() {return ((function() {var loop = (function(lst1,lst2){\n+var n1 = null_p_(lst1);\n+var n2 = null_p_(lst2);\n+return (function() {if((n1 && n2)) {return ((function() {return true;\n+}))();\n+} else {return (function() {if((n1 || n2)) {return ((function() {return false;\n+}))();\n+} else {return ((function() {return (function() {if(equal_p_(car(lst1),car(lst2))) {return loop(cdr(lst1),cdr(lst2));\n+} else {return false;\n+}})()\n+;\n+}))();\n+}})()\n+;\n+}})()\n+;\n+});\n+var o37 = obj1;\n+var o38 = obj2;\n+return loop(o37,o38);\n+}))();\n+}))();\n+} else {return (function() {if((vector_p_(obj1) && vector_p_(obj2))) {return ((function() {return ((function() {var loop = (function(i){\n+return (function() {if(((i < obj1["length"]) && (i < obj2["length"]))) {return ((function() {return true;\n+}))();\n+} else {return (function() {if(((i < obj1["length"]) || (i < obj2["length"]))) {return ((function() {return false;\n+}))();\n+} else {return ((function() {return (function() {if(equal_p_(vector_dash_ref(obj1,i),vector_dash_ref(obj2,i))) {return loop((i + 1));\n+} else {return false;\n+}})()\n+;\n+}))();\n+}})()\n+;\n+}})()\n+;\n+});\n+var o39 = 0;\n+return loop(o39);\n+}))();\n+}))();\n+} else {return (function() {if((dict_p_(obj1) && dict_p_(obj2))) {return ((function() {return ((function() {var o40 = (function(keys1,keys2){\n+return (eq_p_(length(keys1),length(keys2)) && ((function() {var loop = (function(lst){\n+return (function() {if(null_p_(lst)) {return true;\n+} else {return (function() {if(equal_p_(dict_dash_ref(obj1,car(lst)),dict_dash_ref(obj2,car(lst)))) {return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n+} else {return false;\n+}})()\n+;\n+}})()\n+;\n+});\n+var o43 = keys1;\n+return trampoline(loop(o43));\n+}))());\n+});\n+var o41 = keys(obj1);\n+var o42 = keys(obj2);\n+return o40(o41,o42);\n+}))();\n+}))();\n+} else {return ((function() {return eq_p_(obj1,obj2);\n+}))();\n+}})()\n+;\n+}})()\n+;\n+}})()\n+;\n+});\n+var eq_p_ = _eq__eq_;\n+var equal_p_ = _eq_;\n+var print = (function(msg){\n+return util["print"](msg);\n+});\n+var println = (function(msg){\n+return util["puts"](msg);\n+});\n+var pp = (function(obj){\n+return println(inspect(obj));\n+});\n+var _per_inspect_dash_non_dash_sequence = (function(obj){\n+return (function() {if(number_p_(obj)) {return ((function() {return ("" + obj);\n+}))();\n+} else {return (function() {if(string_p_(obj)) {return ((function() {obj = obj["replace"](RegExp("\\\\\\\\","g"),"\\\\\\\\");\n+obj = obj["replace"](RegExp("\\n","g"),"\\\\n");\n+obj = obj["replace"](RegExp("\\r","g"),"\\\\r");\n+obj = obj["replace"](RegExp("\\t","g"),"\\\\t");\n+obj = obj["replace"](RegExp("\\"","g"),"\\\\\\"");\n+return ("\\"" + obj + "\\"");\n+}))();\n+} else {return (function() {if(symbol_p_(obj)) {return ((function() {return symbol_dash__gt_string(obj);\n+}))();\n+} else {return (function() {if(boolean_p_(obj)) {return ((function() {return (function() {if(obj) {return "#t";\n+} else {return "#f";\n+}})()\n+;\n+}))();\n+} else {return (function() {if(null_p_(obj)) {return ((function() {return "()";\n+}))();\n+} else {return (function() {if(function_p_(obj)) {return ((function() {return "<function>";\n+}))();\n+} else {return ((function() {throw("%inspect-non-sequence: unexpected type");\n+}))();\n+}})()\n+;\n+}})()\n+;\n+}})()\n+;\n+}})()\n+;\n+}})()\n+;\n+}})()\n+;\n+});\n+var _per_recur_dash_protect = (function(obj,arg,func,halt){\n+var rest = vector_dash__gt_list(Array.prototype.slice.call(arguments, 4));\n+return ((function() {var o44 = (function(parents){\n+return (function() {if(list_dash_find(parents,obj)) {return halt;\n+} else {return func(obj,arg,(function(el,arg){\n+return _per_recur_dash_protect(el,arg,func,halt,cons(obj,parents));\n+}));\n+}})()\n+;\n+});\n+var o45 = (function() {if(null_p_(rest)) {return _emptylst;\n+} else {return car(rest);\n+}})()\n+;\n+return o44(o45);\n+}))();\n+});\n+var _per_space = (function(obj){\n+return _per_recur_dash_protect(obj,false,(function(obj,arg,recur){\n+return (function() {if(list_p_(obj)) {return ((function() {return (length(obj) + 1 + fold((function(el,acc){\n+return (acc + recur(el,false));\n+}),0,obj));\n+}))();\n+} else {return (function() {if(dict_p_(obj)) {return ((function() {return recur(dict_dash__gt_list(obj),false);\n+}))();\n+} else {return (function() {if(vector_p_(obj)) {return ((function() {return recur(vector_dash__gt_list(obj),false);\n+}))();\n+} else {return ((function() {return vector_dash_length(_per_inspect_dash_non_dash_sequence(obj));\n+}))();\n+}})()\n+;\n+}})()\n+;\n+}})()\n+;\n+}),vector_dash_length("<circular>"));\n+});\n+var inspect = (function(obj){\n+var rest = vector_dash__gt_list(Array.prototype.slice.call(arguments, 1));\n+return ((function() {var o46 = (function(no_dash_newlines){\n+return _per_recur_dash_protect(obj,1,(function(obj,i,recur){\n+var buffer = "";\n+var get_dash_buffer = (function() {return buffer;\n+});\n+var disp = (function(s){\n+buffer = (buffer + s);\n+});\n+var pad = (function(n){\n+return vector_dash_for_dash_each((function(_){\n+return disp(" ");\n+}),make_dash_vector(n));\n+});\n+return (function() {if(list_p_(obj)) {return ((function() {return ((function() {var o48 = (function(sp,first){\n+disp("(");\n+for_dash_each((function(el){\n+(function() {if(not(first)) {return (function() {if((sp && not(no_dash_newlines))) {return ((function() {disp("\\n");\n+return pad(i);\n+}))();\n+} else {return disp(" ");\n+}})()\n+;\n+} else {return false;\n+}})()\n+;\n+disp(recur(el,(i + 1)));\n+first = false;\n+}),obj);\n+disp(")");\n+return get_dash_buffer();\n+});\n+var o49 = (_per_space(obj) > 30);\n+var o50 = true;\n+return o48(o49,o50);\n+}))();\n+}))();\n+} else {return (function() {if(vector_p_(obj)) {return ((function() {return ((function() {var o51 = (function(sp,first){\n+disp("[");\n+vector_dash_for_dash_each((function(el){\n+(function() {if(not(first)) {return (function() {if((sp && not(no_dash_newlines))) {return ((function() {disp("\\n");\n+return pad(i);\n+}))();\n+} else {return disp(" ");\n+}})()\n+;\n+} else {return false;\n+}})()\n+;\n+disp(recur(el,(i + 1)));\n+first = false;\n+}),obj);\n+disp("]");\n+return get_dash_buffer();\n+});\n+var o52 = (_per_space(obj) > 30);\n+var o53 = true;\n+return o51(o52,o53);\n+}))();\n+}))();\n+} else {return (function() {if(dict_p_(obj)) {return ((function() {return ((function() {var o54 = (function(sp,first){\n+disp("{");\n+for_dash_each((function(k){\n+(function() {if(not(first)) {return (function() {if((sp && not(no_dash_newlines))) {return ((function() {disp("\\n");\n+return pad(i);\n+}))();\n+} else {return disp(" ");\n+}})()\n+;\n+} else {return false;\n+}})()\n+;\n+disp(":");\n+disp(recur(k,i));\n+disp(" ");\n+disp(recur(dict_dash_ref(obj,k),(i + 3 + vector_dash_length(symbol_dash__gt_string(k)))));\n+first = false;\n+}),keys(obj));\n+disp("}");\n+return get_dash_buffer();\n+});\n+var o55 = (_per_space(obj) > 30);\n+var o56 = true;\n+return o54(o55,o56);\n+}))();\n+}))();\n+} else {return ((function() {return _per_inspect_dash_non_dash_sequence(obj);\n+}))();\n+}})()\n+;\n+}})()\n+;\n+}})()\n+;\n+}),"<circular>");\n+});\n+var o47 = (function() {if(null_p_(rest)) {return false;\n+} else {return car(rest);\n+}})()\n+;\n+return o46(o47);\n+}))();\n+});\n+var apply = (function(func,args){\n+return func.apply(null,list_dash__gt_vector(args));\n+});\n+var trampoline_dash_result_p_ = (function(value){\n+return (vector_p_(value) && _eq_(vector_dash_ref(value,0),"__tco_call"));\n+});\n+var trampoline = (function(value){\n+while(trampoline_dash_result_p_(value)) { value = value[1](); }return value;\n+});\n+var _gensym = 0;\n+var gensym = (function() {_gensym = (_gensym + 1);\n+return string_dash__gt_symbol(("o" + _gensym));\n+});\n+\n+\n+var __compiler = require(\'/Users/james/projects/outlet/backends/../compiler\');\n+var __generator = require(\'/Users/james/projects/outlet/backends/../backends/js\');\n+var read = __compiler.read;\n+((function() {true;\n+true;\n+true;\n+true;\n+var foo = (function(x,y,z){\n+return (x + y + z);\n+});\n+((function() {var o30 = (function(comp,res){\n+return (function() {if(not(comp(res,6))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1foo",1,2,3))," got ",util["inspect"](res)," but expected ",util["inspect"](6)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o31 = _eq_;\n+var o32 = eval(__compiler["compile"](list("\\uFDD1foo",1,2,3),__generator()));\n+return o30(o31,o32);\n+}))();\n+var bar = (function(t){\n+return (foo(1,2,3) * t);\n+});\n+((function() {var o33 = (function(comp,res){\n+return (function() {if(not(comp(res,30))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1bar",5))," got ",util["inspect"](res)," but expected ",util["inspect"](30)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o34 = _eq_;\n+var o35 = eval(__compiler["compile"](list("\\uFDD1bar",5),__generator()));\n+return o33(o34,o35);\n+}))();\n+((function() {var o36 = (function(comp,res){\n+return (function() {if(not(comp(res,42))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list(list("\\uFDD1lambda",list("\\uFDD1x"),list("\\uFDD1bar",list("\\uFDD1+","\\uFDD1x",2))),5))," got ",util["inspect"](res)," but expected ",util["inspect"](42)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o37 = _eq_;\n+var o38 = eval(__compiler["compile"](list(list("\\uFDD1lambda",list("\\uFDD1x"),list("\\uFDD1bar",list("\\uFDD1+","\\uFDD1x",2))),5),__generator()));\n+return o36(o37,o38);\n+}))();\n+var foo = (function(x,y,z){\n+return (x + y + z);\n+});\n+((function() {var o39 = (function(comp,res){\n+return (function() {if(not(comp(res,6))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1foo",1,2,3))," got ",util["inspect"](res)," but expected ",util["inspect"](6)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o40 = _eq_;\n+var o41 = eval(__compiler["compile"](list("\\uFDD1foo",1,2,3),__generator()));\n+return o39(o40,o41);\n+}))();\n+((function() {var o42 = (function(comp,res){\n+return (function() {if(not(comp(res,"onetwo"))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1str","one","two"))," got ",util["inspect"](res)," but expected ",util["inspect"]("onetwo")));\n+} else {return false;\n+}})()\n+;\n+});\n+var o43 = _eq_;\n+var o44 = eval(__compiler["compile"](list("\\uFDD1str","one","two"),__generator()));\n+return o42(o43,o44);\n+}))();\n+((function() {var o45 = (function(comp,res){\n+return (function() {if(not(comp(res,"one2three#f"))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1str","one",2,list("\\uFDD1quote","\\uFDD1three"),false))," got ",util["inspect"](res)," but expected ",util["inspect"]("one2three#f")));\n+} else {return false;\n+}})()\n+;\n+});\n+var o46 = _eq_;\n+var o47 = eval(__compiler["compile"](list("\\uFDD1str","one",2,list("\\uFDD1quote","\\uFDD1three"),false),__generator()));\n+return o45(o46,o47);\n+}))();\n+((function() {var o48 = (function(comp,res){\n+return (function() {if(not(comp(res,"(1 2 3)one"))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1str",list("\\uFDD1quote",list(1,2,3)),"one"))," got ",util["inspect"](res)," but expected ",util["inspect"]("(1 2 3)one")));\n+} else {return false;\n+}})()\n+;\n+});\n+var o49 = _eq_;\n+var o50 = eval(__compiler["compile"](list("\\uFDD1str",list("\\uFDD1quote",list(1,2,3)),"one"),__generator()));\n+return o48(o49,o50);\n+}))();\n+((function() {var o51 = (function(comp,res){\n+return (function() {if(not(comp(res,"[1 2 3]one"))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1str",vector(1,2,3),"one"))," got ",util["inspect"](res)," but expected ",util["inspect"]("[1 2 3]one")));\n+} else {return false;\n+}})()\n+;\n+});\n+var o52 = _eq_;\n+var o53 = eval(__compiler["compile"](list("\\uFDD1str",vector(1,2,3),"one"),__generator()));\n+return o51(o52,o53);\n+}))();\n+((function() {var o54 = (function(comp,res){\n+return (function() {if(not(comp(res,"\\uFDD1foo"))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1string->symbol","foo"))," got ",util["inspect"](res)," but expected ",util["inspect"]("\\uFDD1foo")));\n+} else {return false;\n+}})()\n+;\n+});\n+var o55 = _eq_;\n+var o56 = eval(__compiler["compile"](list("\\uFDD1string->symbol","foo"),__generator()));\n+return o54(o55,o56);\n+}))();\n+((function() {var o57 = (function(comp,res){\n+return (function() {if(not(comp(res,"\\uFDD1foo-?!><%="))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1string->symbol","foo-?!><%="))," got ",util["inspect"](res)," but expected ",util["inspect"]("\\uFDD1foo-?!><%=")));\n+} else {return false;\n+}})()\n+;\n+});\n+var o58 = _eq_;\n+var o59 = eval(__compiler["compile"](list("\\uFDD1string->symbol","foo-?!><%="),__generator()));\n+return o57(o58,o59);\n+}))();\n+((function() {var o60 = (function(comp,res){\n+return (function() {if(not(comp(res,"bar"))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1symbol->string",list("\\uFDD1quote","\\uFDD1bar")))," got ",util["inspect"](res)," but expected ",util["inspect"]("bar")));\n+} else {return false;\n+}})()\n+;\n+});\n+var o61 = _eq_;\n+var o62 = eval(__compiler["compile"](list("\\uFDD1symbol->string",list("\\uFDD1quote","\\uFDD1bar")),__generator()));\n+return o60(o61,o62);\n+}))();\n+((function() {var o63 = (function(comp,res){\n+return (function() {if(not(comp(res,"bar-?!><%="))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1symbol->string",list("\\uFDD1quote","\\uFDD1bar-?!><%=")))," got ",util["inspect"](res)," but expected ",util["inspect"]("bar-?!><%=")));\n+} else {return false;\n+}})()\n+;\n+});\n+var o64 = _eq_;\n+var o65 = eval(__compiler["compile"](list("\\uFDD1symbol->string",list("\\uFDD1quote","\\uFDD1bar-?!><%=")),__generator()));\n+return o63(o64,o65);\n+}))();\n+((function() {var o66 = (function(comp,res){\n+return (function() {if(not(comp(res,100))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list(list("\\uFDD1lambda",list("\\uFDD1x"),list("\\uFDD1set!","\\uFDD1x",10),list("\\uFDD1*","\\uFDD1x","\\uFDD1x")),5))," got ",util["inspect"](res)," but expected ",util["inspect"](100)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o67 = _eq_;\n+var o68 = eval(__compiler["compile"](list(list("\\uFDD1lambda",list("\\uFDD1x"),list("\\uFDD1set!","\\uFDD1x",10),list("\\uFDD1*","\\uFDD1x","\\uFDD1x")),5),__generator()));\n+return o66(o67,o68);\n+}))();\n+((function() {var o69 = (function(comp,res){\n+return (function() {if(not(comp(res,3))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1+",1,2))," got ",util["inspect"](res)," but expected ",util["inspect"](3)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o70 = _eq_;\n+var o71 = eval(__compiler["compile"](list("\\uFDD1+",1,2),__generator()));\n+return o69(o70,o71);\n+}))();\n+((function() {var o72 = (function(comp,res){\n+return (function() {if(not(comp(res,-1))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1-",1,2))," got ",util["inspect"](res)," but expected ",util["inspect"](-1)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o73 = _eq_;\n+var o74 = eval(__compiler["compile"](list("\\uFDD1-",1,2),__generator()));\n+return o72(o73,o74);\n+}))();\n+((function() {var o75 = (function(comp,res){\n+return (function() {if(not(comp(res,12))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1*",3,4))," got ",util["inspect"](res)," but expected ",util["inspect"](12)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o76 = _eq_;\n+var o77 = eval(__compiler["compile"](list("\\uFDD1*",3,4),__generator()));\n+return o75(o76,o77);\n+}))();\n+((function() {var o78 = (function(comp,res){\n+return (function() {if(not(comp(res,2.5))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1/",10,4))," got ",util["inspect"](res)," but expected ",util["inspect"](2.5)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o79 = _eq_;\n+var o80 = eval(__compiler["compile"](list("\\uFDD1/",10,4),__generator()));\n+return o78(o79,o80);\n+}))();\n+((function() {var o81 = (function(comp,res){\n+return (function() {if(not(comp(res,2))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1%",12,10))," got ",util["inspect"](res)," but expected ",util["inspect"](2)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o82 = _eq_;\n+var o83 = eval(__compiler["compile"](list("\\uFDD1%",12,10),__generator()));\n+return o81(o82,o83);\n+}))();\n+((function() {var o84 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1<",1,2))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o85 = _eq_;\n+var o86 = eval(__compiler["compile"](list("\\uFDD1<",1,2),__generator()));\n+return o84(o85,o86);\n+}))();\n+((function() {var o87 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1<",5,4))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o88 = _eq_;\n+var o89 = eval(__compiler["compile"](list("\\uFDD1<",5,4),__generator()));\n+return o87(o88,o89);\n+}))();\n+((function() {var o90 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1>",2,1))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o91 = _eq_;\n+var o92 = eval(__compiler["compile"](list("\\uFDD1>",2,1),__generator()));\n+return o90(o91,o92);\n+}))();\n+((function() {var o93 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1>",4,5))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o94 = _eq_;\n+var o95 = eval(__compiler["compile"](list("\\uFDD1>",4,5),__generator()));\n+return o93(o94,o95);\n+}))();\n+((function() {var o96 = (function(comp,res){\n+return (function() {if(not(comp(res,list(1,2,3)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1list",1,2,3))," got ",util["inspect"](res)," but expected ",util["inspect"](list(1,2,3))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o97 = _eq_;\n+var o98 = eval(__compiler["compile"](list("\\uFDD1list",1,2,3),__generator()));\n+return o96(o97,o98);\n+}))();\n+((function() {var o99 = (function(comp,res){\n+return (function() {if(not(comp(res,list(1)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1cons",1,list("\\uFDD1quote",_emptylst)))," got ",util["inspect"](res)," but expected ",util["inspect"](list(1))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o100 = _eq_;\n+var o101 = eval(__compiler["compile"](list("\\uFDD1cons",1,list("\\uFDD1quote",_emptylst)),__generator()));\n+return o99(o100,o101);\n+}))();\n+((function() {var o102 = (function(comp,res){\n+return (function() {if(not(comp(res,2))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1car",list("\\uFDD1cons",2,list("\\uFDD1cons",3,list("\\uFDD1quote",_emptylst)))))," got ",util["inspect"](res)," but expected ",util["inspect"](2)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o103 = _eq_;\n+var o104 = eval(__compiler["compile"](list("\\uFDD1car",list("\\uFDD1cons",2,list("\\uFDD1cons",3,list("\\uFDD1quote",_emptylst)))),__generator()));\n+return o102(o103,o104);\n+}))();\n+((function() {var o105 = (function(comp,res){\n+return (function() {if(not(comp(res,list(3)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1cdr",list("\\uFDD1cons",2,list("\\uFDD1cons",3,list("\\uFDD1quote",_emptylst)))))," got ",util["inspect"](res)," but expected ",util["inspect"](list(3))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o106 = _eq_;\n+var o107 = eval(__compiler["compile"](list("\\uFDD1cdr",list("\\uFDD1cons",2,list("\\uFDD1cons",3,list("\\uFDD1quote",_emptylst)))),__generator()));\n+return o105(o106,o107);\n+}))();\n+var foo = list(list(1,2,3),list(4,5,6),list(7,8,9),10);\n+((function() {var o108 = (function(comp,res){\n+return (function() {if(not(comp(res,list(4,5,6)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1cadr","\\uFDD1foo"))," got ",util["inspect"](res)," but expected ",util["inspect"](list(4,5,6))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o109 = _eq_;\n+var o110 = eval(__compiler["compile"](list("\\uFDD1cadr","\\uFDD1foo"),__generator()));\n+return o108(o109,o110);\n+}))();\n+((function() {var o111 = (function(comp,res){\n+return (function() {if(not(comp(res,list(list(7,8,9),10)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1cddr","\\uFDD1foo"))," got ",util["inspect"](res)," but expected ",util["inspect"](list(list(7,8,9),10))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o112 = _eq_;\n+var o113 = eval(__compiler["compile"](list("\\uFDD1cddr","\\uFDD1foo"),__generator()));\n+return o111(o112,o113);\n+}))();\n+((function() {var o114 = (function(comp,res){\n+return (function() {if(not(comp(res,list(2,3)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1cdar","\\uFDD1foo"))," got ",util["inspect"](res)," but expected ",util["inspect"](list(2,3))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o115 = _eq_;\n+var o116 = eval(__compiler["compile"](list("\\uFDD1cdar","\\uFDD1foo"),__generator()));\n+return o114(o115,o116);\n+}))();\n+((function() {var o117 = (function(comp,res){\n+return (function() {if(not(comp(res,list(7,8,9)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1caddr","\\uFDD1foo"))," got ",util["inspect"](res)," but expected ",util["inspect"](list(7,8,9))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o118 = _eq_;\n+var o119 = eval(__compiler["compile"](list("\\uFDD1caddr","\\uFDD1foo"),__generator()));\n+return o117(o118,o119);\n+}))();\n+((function() {var o120 = (function(comp,res){\n+return (function() {if(not(comp(res,list(10)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1cdddr","\\uFDD1foo"))," got ",util["inspect"](res)," but expected ",util["inspect"](list(10))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o121 = _eq_;\n+var o122 = eval(__compiler["compile"](list("\\uFDD1cdddr","\\uFDD1foo"),__generator()));\n+return o120(o121,o122);\n+}))();\n+((function() {var o123 = (function(comp,res){\n+return (function() {if(not(comp(res,2))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1cadar","\\uFDD1foo"))," got ",util["inspect"](res)," but expected ",util["inspect"](2)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o124 = _eq_;\n+var o125 = eval(__compiler["compile"](list("\\uFDD1cadar","\\uFDD1foo"),__generator()));\n+return o123(o124,o125);\n+}))();\n+((function() {var o126 = (function(comp,res){\n+return (function() {if(not(comp(res,list(3)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1cddar","\\uFDD1foo"))," got ",util["inspect"](res)," but expected ",util["inspect"](list(3))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o127 = _eq_;\n+var o128 = eval(__compiler["compile"](list("\\uFDD1cddar","\\uFDD1foo"),__generator()));\n+return o126(o127,o128);\n+}))();\n+((function() {var o129 = (function(comp,res){\n+return (function() {if(not(comp(res,4))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1caadr","\\uFDD1foo"))," got ",util["inspect"](res)," but expected ",util["inspect"](4)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o130 = _eq_;\n+var o131 = eval(__compiler["compile"](list("\\uFDD1caadr","\\uFDD1foo"),__generator()));\n+return o129(o130,o131);\n+}))();\n+((function() {var o132 = (function(comp,res){\n+return (function() {if(not(comp(res,list(5,6)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1cdadr","\\uFDD1foo"))," got ",util["inspect"](res)," but expected ",util["inspect"](list(5,6))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o133 = _eq_;\n+var o134 = eval(__compiler["compile"](list("\\uFDD1cdadr","\\uFDD1foo"),__generator()));\n+return o132(o133,o134);\n+}))();\n+((function() {var o135 = (function(comp,res){\n+return (function() {if(not(comp(res,"\\uFDD1z"))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1list-ref",list("\\uFDD1quote",list("\\uFDD1x","\\uFDD1y","\\uFDD1z")),2))," got ",util["inspect"](res)," but expected ",util["inspect"]("\\uFDD1z")));\n+} else {return false;\n+}})()\n+;\n+});\n+var o136 = _eq_;\n+var o137 = eval(__compiler["compile"](list("\\uFDD1list-ref",list("\\uFDD1quote",list("\\uFDD1x","\\uFDD1y","\\uFDD1z")),2),__generator()));\n+return o135(o136,o137);\n+}))();\n+((function() {var o138 = (function(comp,res){\n+return (function() {if(not(comp(res,3))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1length",list("\\uFDD1quote",list("\\uFDD1x","\\uFDD1y","\\uFDD1z"))))," got ",util["inspect"](res)," but expected ",util["inspect"](3)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o139 = _eq_;\n+var o140 = eval(__compiler["compile"](list("\\uFDD1length",list("\\uFDD1quote",list("\\uFDD1x","\\uFDD1y","\\uFDD1z"))),__generator()));\n+return o138(o139,o140);\n+}))();\n+((function() {var o141 = (function(comp,res){\n+return (function() {if(not(comp(res,list(1,2,3,4)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1list-append",list("\\uFDD1quote",list(1,2)),list("\\uFDD1quote",list(3,4))))," got ",util["inspect"](res)," but expected ",util["inspect"](list(1,2,3,4))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o142 = _eq_;\n+var o143 = eval(__compiler["compile"](list("\\uFDD1list-append",list("\\uFDD1quote",list(1,2)),list("\\uFDD1quote",list(3,4))),__generator()));\n+return o141(o142,o143);\n+}))();\n+((function() {var o144 = (function(comp,res){\n+return (function() {if(not(comp(res,list("\\uFDD1z")))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1list-find",list("\\uFDD1quote",list("\\uFDD1x","\\uFDD1y","\\uFDD1z")),list("\\uFDD1quote","\\uFDD1z")))," got ",util["inspect"](res)," but expected ",util["inspect"](list("\\uFDD1z"))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o145 = _eq_;\n+var o146 = eval(__compiler["compile"](list("\\uFDD1list-find",list("\\uFDD1quote",list("\\uFDD1x","\\uFDD1y","\\uFDD1z")),list("\\uFDD1quote","\\uFDD1z")),__generator()));\n+return o144(o145,o146);\n+}))();\n+((function() {var o147 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1list-find",list("\\uFDD1quote",list("\\uFDD1x","\\uFDD1y","\\uFDD1z")),list("\\uFDD1quote","\\uFDD1w")))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o148 = _eq_;\n+var o149 = eval(__compiler["compile"](list("\\uFDD1list-find",list("\\uFDD1quote",list("\\uFDD1x","\\uFDD1y","\\uFDD1z")),list("\\uFDD1quote","\\uFDD1w")),__generator()));\n+return o147(o148,o149);\n+}))();\n+((function() {var o150 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1list-find",list("\\uFDD1quote",list(list(1,2),list(3,4))),list("\\uFDD1quote",list(3,4))))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o151 = _eq_;\n+var o152 = eval(__compiler["compile"](list("\\uFDD1list-find",list("\\uFDD1quote",list(list(1,2),list(3,4))),list("\\uFDD1quote",list(3,4))),__generator()));\n+return o150(o151,o152);\n+}))();\n+((function() {var o153 = (function(comp,res){\n+return (function() {if(not(comp(res,list(list(3,4))))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1list-find",list("\\uFDD1quote",list(list(1,2),list(3,4))),4,"\\uFDD1cadr"))," got ",util["inspect"](res)," but expected ",util["inspect"](list(list(3,4)))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o154 = _eq_;\n+var o155 = eval(__compiler["compile"](list("\\uFDD1list-find",list("\\uFDD1quote",list(list(1,2),list(3,4))),4,"\\uFDD1cadr"),__generator()));\n+return o153(o154,o155);\n+}))();\n+((function() {var o156 = (function(comp,res){\n+return (function() {if(not(comp(res,list("\\uFDD1z","\\uFDD1y","\\uFDD1x")))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1reverse",list("\\uFDD1quote",list("\\uFDD1x","\\uFDD1y","\\uFDD1z"))))," got ",util["inspect"](res)," but expected ",util["inspect"](list("\\uFDD1z","\\uFDD1y","\\uFDD1x"))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o157 = _eq_;\n+var o158 = eval(__compiler["compile"](list("\\uFDD1reverse",list("\\uFDD1quote",list("\\uFDD1x","\\uFDD1y","\\uFDD1z"))),__generator()));\n+return o156(o157,o158);\n+}))();\n+((function() {var o159 = (function(comp,res){\n+return (function() {if(not(comp(res,list(1,2,3)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1vector->list",vector(1,2,3)))," got ",util["inspect"](res)," but expected ",util["inspect"](list(1,2,3))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o160 = _eq_;\n+var o161 = eval(__compiler["compile"](list("\\uFDD1vector->list",vector(1,2,3)),__generator()));\n+return o159(o160,o161);\n+}))();\n+((function() {var o162 = (function(comp,res){\n+return (function() {if(not(comp(res,list(1,2,vector(1,2))))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1vector->list",vector(1,2,vector(1,2))))," got ",util["inspect"](res)," but expected ",util["inspect"](list(1,2,vector(1,2)))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o163 = _eq_;\n+var o164 = eval(__compiler["compile"](list("\\uFDD1vector->list",vector(1,2,vector(1,2))),__generator()));\n+return o162(o163,o164);\n+}))();\n+((function() {var o165 = (function(comp,res){\n+return (function() {if(not(comp(res,list(2,3,4)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1map",list("\\uFDD1lambda",list("\\uFDD1el"),list("\\uFDD1+","\\uFDD1el",1)),list("\\uFDD1quote",list(1,2,3))))," got ",util["inspect"](res)," but expected ",util["inspect"](list(2,3,4))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o166 = _eq_;\n+var o167 = eval(__compiler["compile"](list("\\uFDD1map",list("\\uFDD1lambda",list("\\uFDD1el"),list("\\uFDD1+","\\uFDD1el",1)),list("\\uFDD1quote",list(1,2,3))),__generator()));\n+return o165(o166,o167);\n+}))();\n+((function() {var o168 = (function(comp,res){\n+return (function() {if(not(comp(res,18))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1fold",list("\\uFDD1lambda",list("\\uFDD1el","\\uFDD1acc"),list("\\uFDD1+","\\uFDD1el","\\uFDD1acc")),0,list("\\uFDD1quote",list(5,6,7))))," got ",util["inspect"](res)," but expected ",util["inspect"](18)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o169 = _eq_;\n+var o170 = eval(__compiler["compile"](list("\\uFDD1fold",list("\\uFDD1lambda",list("\\uFDD1el","\\uFDD1acc"),list("\\uFDD1+","\\uFDD1el","\\uFDD1acc")),0,list("\\uFDD1quote",list(5,6,7))),__generator()));\n+return o168(o169,o170);\n+}))();\n+var last = false;\n+for_dash_each((function(el){\n+return last = el;\n+}),list("\\uFDD1one","\\uFDD1two","\\uFDD1three"));\n+((function() {var o171 = (function(comp,res){\n+return (function() {if(not(comp(res,"\\uFDD1three"))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"]("\\uFDD1last")," got ",util["inspect"](res)," but expected ",util["inspect"]("\\uFDD1three")));\n+} else {return false;\n+}})()\n+;\n+});\n+var o172 = _eq_;\n+var o173 = eval(__compiler["compile"]("\\uFDD1last",__generator()));\n+return o171(o172,o173);\n+}))();\n+var foo = (function() {\n+var args = vector_dash__gt_list(Array.prototype.slice.call(arguments));\n+return args;\n+});\n+((function() {var o174 = (function(comp,res){\n+return (function() {if(not(comp(res,list(1,2,3)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1foo",1,2,3))," got ",util["inspect"](res)," but expected ",util["inspect"](list(1,2,3))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o175 = _eq_;\n+var o176 = eval(__compiler["compile"](list("\\uFDD1foo",1,2,3),__generator()));\n+return o174(o175,o176);\n+}))();\n+((function() {var o177 = (function(comp,res){\n+return (function() {if(not(comp(res,vector(1,1,1,1,1)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1make-vector",5,1))," got ",util["inspect"](res)," but expected ",util["inspect"](vector(1,1,1,1,1))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o178 = _eq_;\n+var o179 = eval(__compiler["compile"](list("\\uFDD1make-vector",5,1),__generator()));\n+return o177(o178,o179);\n+}))();\n+((function() {var o180 = (function(comp,res){\n+return (function() {if(not(comp(res,vector(1,"\\uFDD1one","one",dict("\\uFDD1one",1))))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1vector",1,list("\\uFDD1quote","\\uFDD1one"),"one",dict("\\uFDD1one",1)))," got ",util["inspect"](res)," but expected ",util["inspect"](vector(1,"\\uFDD1one","one",dict("\\uFDD1one",1)))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o181 = _eq_;\n+var o182 = eval(__compiler["compile"](list("\\uFDD1vector",1,list("\\uFDD1quote","\\uFDD1one"),"one",dict("\\uFDD1one",1)),__generator()));\n+return o180(o181,o182);\n+}))();\n+((function() {var o183 = (function(comp,res){\n+return (function() {if(not(comp(res,"one"))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1vector-ref",vector(1,list("\\uFDD1quote","\\uFDD1one"),"one"),2))," got ",util["inspect"](res)," but expected ",util["inspect"]("one")));\n+} else {return false;\n+}})()\n+;\n+});\n+var o184 = _eq_;\n+var o185 = eval(__compiler["compile"](list("\\uFDD1vector-ref",vector(1,list("\\uFDD1quote","\\uFDD1one"),"one"),2),__generator()));\n+return o183(o184,o185);\n+}))();\n+var vec = vector(1,2,3,4);\n+vector_dash_put_excl_(vec,3,3);\n+((function() {var o186 = (function(comp,res){\n+return (function() {if(not(comp(res,vector(1,2,3,3)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"]("\\uFDD1vec")," got ",util["inspect"](res)," but expected ",util["inspect"](vector(1,2,3,3))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o187 = _eq_;\n+var o188 = eval(__compiler["compile"]("\\uFDD1vec",__generator()));\n+return o186(o187,o188);\n+}))();\n+((function() {var o189 = (function(comp,res){\n+return (function() {if(not(comp(res,vector(1,2,3,4)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1vector-concat",vector(1,2),vector(3,4)))," got ",util["inspect"](res)," but expected ",util["inspect"](vector(1,2,3,4))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o190 = _eq_;\n+var o191 = eval(__compiler["compile"](list("\\uFDD1vector-concat",vector(1,2),vector(3,4)),__generator()));\n+return o189(o190,o191);\n+}))();\n+((function() {var o192 = (function(comp,res){\n+return (function() {if(not(comp(res,vector(2,3,4)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1vector-slice",vector(1,2,3,4),1))," got ",util["inspect"](res)," but expected ",util["inspect"](vector(2,3,4))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o193 = _eq_;\n+var o194 = eval(__compiler["compile"](list("\\uFDD1vector-slice",vector(1,2,3,4),1),__generator()));\n+return o192(o193,o194);\n+}))();\n+((function() {var o195 = (function(comp,res){\n+return (function() {if(not(comp(res,vector(2,3)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1vector-slice",vector(1,2,3,4),1,2))," got ",util["inspect"](res)," but expected ",util["inspect"](vector(2,3))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o196 = _eq_;\n+var o197 = eval(__compiler["compile"](list("\\uFDD1vector-slice",vector(1,2,3,4),1,2),__generator()));\n+return o195(o196,o197);\n+}))();\n+var vec = vector(1,2,3,4);\n+vector_dash_push_excl_(vec,5);\n+((function() {var o198 = (function(comp,res){\n+return (function() {if(not(comp(res,vector(1,2,3,4,5)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"]("\\uFDD1vec")," got ",util["inspect"](res)," but expected ",util["inspect"](vector(1,2,3,4,5))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o199 = _eq_;\n+var o200 = eval(__compiler["compile"]("\\uFDD1vec",__generator()));\n+return o198(o199,o200);\n+}))();\n+((function() {var o201 = (function(comp,res){\n+return (function() {if(not(comp(res,2))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1vector-find",list("\\uFDD1quote",vector("\\uFDD1x","\\uFDD1y","\\uFDD1z")),list("\\uFDD1quote","\\uFDD1z")))," got ",util["inspect"](res)," but expected ",util["inspect"](2)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o202 = _eq_;\n+var o203 = eval(__compiler["compile"](list("\\uFDD1vector-find",list("\\uFDD1quote",vector("\\uFDD1x","\\uFDD1y","\\uFDD1z")),list("\\uFDD1quote","\\uFDD1z")),__generator()));\n+return o201(o202,o203);\n+}))();\n+((function() {var o204 = (function(comp,res){\n+return (function() {if(not(comp(res,3))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1vector-length",vector(1,2,3)))," got ",util["inspect"](res)," but expected ",util["inspect"](3)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o205 = _eq_;\n+var o206 = eval(__compiler["compile"](list("\\uFDD1vector-length",vector(1,2,3)),__generator()));\n+return o204(o205,o206);\n+}))();\n+((function() {var o207 = (function(comp,res){\n+return (function() {if(not(comp(res,vector(1,2,3)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1list->vector",list("\\uFDD1quote",list(1,2,3))))," got ",util["inspect"](res)," but expected ",util["inspect"](vector(1,2,3))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o208 = _eq_;\n+var o209 = eval(__compiler["compile"](list("\\uFDD1list->vector",list("\\uFDD1quote",list(1,2,3))),__generator()));\n+return o207(o208,o209);\n+}))();\n+((function() {var o210 = (function(comp,res){\n+return (function() {if(not(comp(res,vector(2,3,4,5)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1vector-map",list("\\uFDD1lambda",list("\\uFDD1el"),list("\\uFDD1+","\\uFDD1el",1)),vector(1,2,3,4)))," got ",util["inspect"](res)," but expected ",util["inspect"](vector(2,3,4,5))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o211 = _eq_;\n+var o212 = eval(__compiler["compile"](list("\\uFDD1vector-map",list("\\uFDD1lambda",list("\\uFDD1el"),list("\\uFDD1+","\\uFDD1el",1)),vector(1,2,3,4)),__generator()));\n+return o210(o211,o212);\n+}))();\n+((function() {var o213 = (function(comp,res){\n+return (function() {if(not(comp(res,6))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1vector-fold",list("\\uFDD1lambda",list("\\uFDD1el","\\uFDD1acc"),list("\\uFDD1+","\\uFDD1el","\\uFDD1acc")),0,vector(1,2,3)))," got ",util["inspect"](res)," but expected ",util["inspect"](6)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o214 = _eq_;\n+var o215 = eval(__compiler["compile"](list("\\uFDD1vector-fold",list("\\uFDD1lambda",list("\\uFDD1el","\\uFDD1acc"),list("\\uFDD1+","\\uFDD1el","\\uFDD1acc")),0,vector(1,2,3)),__generator()));\n+return o213(o214,o215);\n+}))();\n+var last = false;\n+vector_dash_for_dash_each((function(el){\n+return last = el;\n+}),vector(4,5,6));\n+((function() {var o216 = (function(comp,res){\n+return (function() {if(not(comp(res,6))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"]("\\uFDD1last")," got ",util["inspect"](res)," but expected ",util["inspect"](6)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o217 = _eq_;\n+var o218 = eval(__compiler["compile"]("\\uFDD1last",__generator()));\n+return o216(o217,o218);\n+}))();\n+((function() {var o219 = (function(comp,res){\n+return (function() {if(not(comp(res,dict("\\uFDD1one",1,"\\uFDD1two",2)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1dict",list("\\uFDD1quote","\\uFDD1one"),1,list("\\uFDD1quote","\\uFDD1two"),2))," got ",util["inspect"](res)," but expected ",util["inspect"](dict("\\uFDD1one",1,"\\uFDD1two",2))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o220 = _eq_;\n+var o221 = eval(__compiler["compile"](list("\\uFDD1dict",list("\\uFDD1quote","\\uFDD1one"),1,list("\\uFDD1quote","\\uFDD1two"),2),__generator()));\n+return o219(o220,o221);\n+}))();\n+((function() {var o222 = (function(comp,res){\n+return (function() {if(not(comp(res,1))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1dict-ref",dict("\\uFDD1one",1,"\\uFDD1two",2),list("\\uFDD1quote","\\uFDD1one")))," got ",util["inspect"](res)," but expected ",util["inspect"](1)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o223 = _eq_;\n+var o224 = eval(__compiler["compile"](list("\\uFDD1dict-ref",dict("\\uFDD1two",2,"\\uFDD1one",1),list("\\uFDD1quote","\\uFDD1one")),__generator()));\n+return o222(o223,o224);\n+}))();\n+var dct = dict("\\uFDD1foo","bar","\\uFDD1baz","bizz");\n+dict_dash_put_excl_(dct,"\\uFDD1mumble","nimble");\n+((function() {var o225 = (function(comp,res){\n+return (function() {if(not(comp(res,dict("\\uFDD1foo","bar","\\uFDD1baz","bizz","\\uFDD1mumble","nimble")))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"]("\\uFDD1dct")," got ",util["inspect"](res)," but expected ",util["inspect"](dict("\\uFDD1foo","bar","\\uFDD1baz","bizz","\\uFDD1mumble","nimble"))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o226 = _eq_;\n+var o227 = eval(__compiler["compile"]("\\uFDD1dct",__generator()));\n+return o225(o226,o227);\n+}))();\n+((function() {var o228 = (function(comp,res){\n+return (function() {if(not(comp(res,dict("\\uFDD1foo",2,"\\uFDD1bar",3)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1dict-map",list("\\uFDD1lambda",list("\\uFDD1el"),list("\\uFDD1+","\\uFDD1el",1)),dict("\\uFDD1foo",1,"\\uFDD1bar",2)))," got ",util["inspect"](res)," but expected ",util["inspect"](dict("\\uFDD1foo",2,"\\uFDD1bar",3))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o229 = _eq_;\n+var o230 = eval(__compiler["compile"](list("\\uFDD1dict-map",list("\\uFDD1lambda",list("\\uFDD1el"),list("\\uFDD1+","\\uFDD1el",1)),dict("\\uFDD1bar",2,"\\uFDD1foo",1)),__generator()));\n+return o228(o229,o230);\n+}))();\n+((function() {var o231 = (function(comp,res){\n+return (function() {if(not(comp(res,dict("\\uFDD1one",1,"\\uFDD1two",2,"\\uFDD1three",3,"\\uFDD1four",4)))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1dict-merge",dict("\\uFDD1one",1,"\\uFDD1two",2),dict("\\uFDD1three",3,"\\uFDD1four",4)))," got ",util["inspect"](res)," but expected ",util["inspect"](dict("\\uFDD1one",1,"\\uFDD1two",2,"\\uFDD1three",3,"\\uFDD1four",4))));\n+} else {return false;\n+}})()\n+;\n+});\n+var o232 = _eq_;\n+var o233 = eval(__compiler["compile"](list("\\uFDD1dict-merge",dict("\\uFDD1two",2,"\\uFDD1one",1),dict("\\uFDD1four",4,"\\uFDD1three",3)),__generator()));\n+return o231(o232,o233);\n+}))();\n+((function() {var o234 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1let",list(list("\\uFDD1vec",list("\\uFDD1dict->vector",dict("\\uFDD1one",1,"\\uFDD1two",2)))),list("\\uFDD1and",list("\\uFDD1vector-find","\\uFDD1vec",list("\\uFDD1quote","\\uFDD1one")),list("\\uFDD1vector-find","\\uFDD1vec",1),list("\\uFDD1vector-find","\\uFDD1vec",list("\\uFDD1quote","\\uFDD1two")),list("\\uFDD1vector-find","\\uFDD1vec",2))))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o235 = (function(res,val){\n+return not(eq_p_(res,false));\n+});\n+var o236 = eval(__compiler["compile"](list("\\uFDD1let",list(list("\\uFDD1vec",list("\\uFDD1dict->vector",dict("\\uFDD1two",2,"\\uFDD1one",1)))),list("\\uFDD1and",list("\\uFDD1vector-find","\\uFDD1vec",list("\\uFDD1quote","\\uFDD1one")),list("\\uFDD1vector-find","\\uFDD1vec",1),list("\\uFDD1vector-find","\\uFDD1vec",list("\\uFDD1quote","\\uFDD1two")),list("\\uFDD1vector-find","\\uFDD1vec",2))),__generator()));\n+return o234(o235,o236);\n+}))();\n+((function() {var o237 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1let",list(list("\\uFDD1lst",list("\\uFDD1dict->list",dict("\\uFDD1one",1,"\\uFDD1two",2)))),list("\\uFDD1and",list("\\uFDD1list-find","\\uFDD1lst",list("\\uFDD1quote","\\uFDD1one")),list("\\uFDD1list-find","\\uFDD1lst",1),list("\\uFDD1list-find","\\uFDD1lst",list("\\uFDD1quote","\\uFDD1two")),list("\\uFDD1list-find","\\uFDD1lst",2))))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o238 = (function(res,val){\n+return not(eq_p_(res,false));\n+});\n+var o239 = eval(__compiler["compile"](list("\\uFDD1let",list(list("\\uFDD1lst",list("\\uFDD1dict->list",dict("\\uFDD1two",2,"\\uFDD1one",1)))),list("\\uFDD1and",list("\\uFDD1list-find","\\uFDD1lst",list("\\uFDD1quote","\\uFDD1one")),list("\\uFDD1list-find","\\uFDD1lst",1),list("\\uFDD1list-find","\\uFDD1lst",list("\\uFDD1quote","\\uFDD1two")),list("\\uFDD1list-find","\\uFDD1lst",2))),__generator()));\n+return o237(o238,o239);\n+}))();\n+((function() {var o240 = (function(k){\n+((function() {var o242 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1list-find","\\uFDD1k",list("\\uFDD1quote","\\uFDD1foo")))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o243 = (function(res,val){\n+return not(eq_p_(res,false));\n+});\n+var o244 = eval(__compiler["compile"](list("\\uFDD1list-find","\\uFDD1k",list("\\uFDD1quote","\\uFDD1foo")),__generator()));\n+return o242(o243,o244);\n+}))();\n+return ((function() {var o245 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1list-find","\\uFDD1k",list("\\uFDD1quote","\\uFDD1bar")))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o246 = (function(res,val){\n+return not(eq_p_(res,false));\n+});\n+var o247 = eval(__compiler["compile"](list("\\uFDD1list-find","\\uFDD1k",list("\\uFDD1quote","\\uFDD1bar")),__generator()));\n+return o245(o246,o247);\n+}))();\n+});\n+var o241 = keys(dict("\\uFDD1foo",1,"\\uFDD1bar",2));\n+return o240(o241);\n+}))();\n+((function() {var o248 = (function(v){\n+((function() {var o250 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1list-find","\\uFDD1v",1))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o251 = (function(res,val){\n+return not(eq_p_(res,false));\n+});\n+var o252 = eval(__compiler["compile"](list("\\uFDD1list-find","\\uFDD1v",1),__generator()));\n+return o250(o251,o252);\n+}))();\n+return ((function() {var o253 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1list-find","\\uFDD1v",2))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o254 = (function(res,val){\n+return not(eq_p_(res,false));\n+});\n+var o255 = eval(__compiler["compile"](list("\\uFDD1list-find","\\uFDD1v",2),__generator()));\n+return o253(o254,o255);\n+}))();\n+});\n+var o249 = vals(dict("\\uFDD1foo",1,"\\uFDD1bar",2));\n+return o248(o249);\n+}))();\n+((function() {var o256 = (function(dct){\n+((function() {var o258 = (function(comp,res){\n+return (function() {if(not(comp(res,1))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1dict-ref","\\uFDD1dct",list("\\uFDD1quote","\\uFDD1foo")))," got ",util["inspect"](res)," but expected ",util["inspect"](1)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o259 = _eq_;\n+var o260 = eval(__compiler["compile"](list("\\uFDD1dict-ref","\\uFDD1dct",list("\\uFDD1quote","\\uFDD1foo")),__generator()));\n+return o258(o259,o260);\n+}))();\n+return ((function() {var o261 = (function(comp,res){\n+return (function() {if(not(comp(res,2))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1dict-ref","\\uFDD1dct",list("\\uFDD1quote","\\uFDD1bar")))," got ",util["inspect"](res)," but expected ",util["inspect"](2)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o262 = _eq_;\n+var o263 = eval(__compiler["compile"](list("\\uFDD1dict-ref","\\uFDD1dct",list("\\uFDD1quote","\\uFDD1bar")),__generator()));\n+return o261(o262,o263);\n+}))();\n+});\n+var o257 = zip(list("\\uFDD1foo","\\uFDD1bar","\\uFDD1baz"),list(1,2,3));\n+return o256(o257);\n+}))();\n+((function() {var o264 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1not",false))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o265 = _eq_;\n+var o266 = eval(__compiler["compile"](list("\\uFDD1not",false),__generator()));\n+return o264(o265,o266);\n+}))();\n+((function() {var o267 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1not",0))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o268 = _eq_;\n+var o269 = eval(__compiler["compile"](list("\\uFDD1not",0),__generator()));\n+return o267(o268,o269);\n+}))();\n+((function() {var o270 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1not","foo"))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o271 = _eq_;\n+var o272 = eval(__compiler["compile"](list("\\uFDD1not","foo"),__generator()));\n+return o270(o271,o272);\n+}))();\n+((function() {var o273 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1==",3,3))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o274 = (function(res,val){\n+return not(eq_p_(res,false));\n+});\n+var o275 = eval(__compiler["compile"](list("\\uFDD1==",3,3),__generator()));\n+return o273(o274,o275);\n+}))();\n+((function() {var o276 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1=",3,3))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o277 = (function(res,val){\n+return not(eq_p_(res,false));\n+});\n+var o278 = eval(__compiler["compile"](list("\\uFDD1=",3,3),__generator()));\n+return o276(o277,o278);\n+}))();\n+((function() {var o279 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1==","foo","foo"))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o280 = (function(res,val){\n+return not(eq_p_(res,false));\n+});\n+var o281 = eval(__compiler["compile"](list("\\uFDD1==","foo","foo"),__generator()));\n+return o279(o280,o281);\n+}))();\n+((function() {var o282 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1=","foo","foo"))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o283 = (function(res,val){\n+return not(eq_p_(res,false));\n+});\n+var o284 = eval(__compiler["compile"](list("\\uFDD1=","foo","foo"),__generator()));\n+return o282(o283,o284);\n+}))();\n+((function() {var o285 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1==",true,true))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o286 = (function(res,val){\n+return not(eq_p_(res,false));\n+});\n+var o287 = eval(__compiler["compile"](list("\\uFDD1==",true,true),__generator()));\n+return o285(o286,o287);\n+}))();\n+((function() {var o288 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1=",true,true))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o289 = (function(res,val){\n+return not(eq_p_(res,false));\n+});\n+var o290 = eval(__compiler["compile"](list("\\uFDD1=",true,true),__generator()));\n+return o288(o289,o290);\n+}))();\n+((function() {var o291 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1==",list("\\uFDD1quote","\\uFDD1foo"),list("\\uFDD1quote","\\uFDD1foo")))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o292 = (function(res,val){\n+return not(eq_p_(res,false));\n+});\n+var o293 = eval(__compiler["compile"](list("\\uFDD1==",list("\\uFDD1quote","\\uFDD1foo"),list("\\uFDD1quote","\\uFDD1foo")),__generator()));\n+return o291(o292,o293);\n+}))();\n+((function() {var o294 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1=",list("\\uFDD1quote","\\uFDD1foo"),list("\\uFDD1quote","\\uFDD1foo")))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o295 = (function(res,val){\n+return not(eq_p_(res,false));\n+});\n+var o296 = eval(__compiler["compile"](list("\\uFDD1=",list("\\uFDD1quote","\\uFDD1foo"),list("\\uFDD1quote","\\uFDD1foo")),__generator()));\n+return o294(o295,o296);\n+}))();\n+((function() {var o297 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1==",list("\\uFDD1quote",_emptylst),list("\\uFDD1quote",_emptylst)))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o298 = (function(res,val){\n+return not(eq_p_(res,false));\n+});\n+var o299 = eval(__compiler["compile"](list("\\uFDD1==",list("\\uFDD1quote",_emptylst),list("\\uFDD1quote",_emptylst)),__generator()));\n+return o297(o298,o299);\n+}))();\n+((function() {var o300 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1=",list("\\uFDD1quote",_emptylst),list("\\uFDD1quote",_emptylst)))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o301 = (function(res,val){\n+return not(eq_p_(res,false));\n+});\n+var o302 = eval(__compiler["compile"](list("\\uFDD1=",list("\\uFDD1quote",_emptylst),list("\\uFDD1quote",_emptylst)),__generator()));\n+return o300(o301,o302);\n+}))();\n+var foo = list(1,2,3);\n+((function() {var o303 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1==","\\uFDD1foo","\\uFDD1foo"))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o304 = (function(res,val){\n+return not(eq_p_(res,false));\n+});\n+var o305 = eval(__compiler["compile"](list("\\uFDD1==","\\uFDD1foo","\\uFDD1foo"),__generator()));\n+return o303(o304,o305);\n+}))();\n+((function() {var o306 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1==",list("\\uFDD1quote",list(1,2,3)),list("\\uFDD1quote",list(1,2,3))))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o307 = _eq_;\n+var o308 = eval(__compiler["compile"](list("\\uFDD1==",list("\\uFDD1quote",list(1,2,3)),list("\\uFDD1quote",list(1,2,3))),__generator()));\n+return o306(o307,o308);\n+}))();\n+((function() {var o309 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1=",list("\\uFDD1quote",list(1,2,3)),list("\\uFDD1quote",list(1,2,3))))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o310 = (function(res,val){\n+return not(eq_p_(res,false));\n+});\n+var o311 = eval(__compiler["compile"](list("\\uFDD1=",list("\\uFDD1quote",list(1,2,3)),list("\\uFDD1quote",list(1,2,3))),__generator()));\n+return o309(o310,o311);\n+}))();\n+var foo = vector(1,2,3);\n+((function() {var o312 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1==","\\uFDD1foo","\\uFDD1foo"))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o313 = (function(res,val){\n+return not(eq_p_(res,false));\n+});\n+var o314 = eval(__compiler["compile"](list("\\uFDD1==","\\uFDD1foo","\\uFDD1foo"),__generator()));\n+return o312(o313,o314);\n+}))();\n+((function() {var o315 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1==",vector(1,2,3),vector(1,2,3)))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o316 = _eq_;\n+var o317 = eval(__compiler["compile"](list("\\uFDD1==",vector(1,2,3),vector(1,2,3)),__generator()));\n+return o315(o316,o317);\n+}))();\n+((function() {var o318 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1=",vector(1,2,3),vector(1,2,3)))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o319 = (function(res,val){\n+return not(eq_p_(res,false));\n+});\n+var o320 = eval(__compiler["compile"](list("\\uFDD1=",vector(1,2,3),vector(1,2,3)),__generator()));\n+return o318(o319,o320);\n+}))();\n+var foo = dict("\\uFDD1one",1);\n+((function() {var o321 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1==","\\uFDD1foo","\\uFDD1foo"))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o322 = (function(res,val){\n+return not(eq_p_(res,false));\n+});\n+var o323 = eval(__compiler["compile"](list("\\uFDD1==","\\uFDD1foo","\\uFDD1foo"),__generator()));\n+return o321(o322,o323);\n+}))();\n+((function() {var o324 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1==",dict("\\uFDD1one",1),dict("\\uFDD1one",1)))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o325 = _eq_;\n+var o326 = eval(__compiler["compile"](list("\\uFDD1==",dict("\\uFDD1one",1),dict("\\uFDD1one",1)),__generator()));\n+return o324(o325,o326);\n+}))();\n+((function() {var o327 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1=",dict("\\uFDD1one",1),dict("\\uFDD1one",1)))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o328 = (function(res,val){\n+return not(eq_p_(res,false));\n+});\n+var o329 = eval(__compiler["compile"](list("\\uFDD1=",dict("\\uFDD1one",1),dict("\\uFDD1one",1)),__generator()));\n+return o327(o328,o329);\n+}))();\n+true;\n+((function() {((function() {var o335 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1boolean?",5))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o336 = _eq_;\n+var o337 = eval(__compiler["compile"](list("\\uFDD1boolean?",5),__generator()));\n+return o335(o336,o337);\n+}))();\n+((function() {var o338 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1number?",5))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o339 = _eq_;\n+var o340 = eval(__compiler["compile"](list("\\uFDD1number?",5),__generator()));\n+return o338(o339,o340);\n+}))();\n+((function() {var o341 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1symbol?",5))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o342 = _eq_;\n+var o343 = eval(__compiler["compile"](list("\\uFDD1symbol?",5),__generator()));\n+return o341(o342,o343);\n+}))();\n+((function() {var o344 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1string?",5))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o345 = _eq_;\n+var o346 = eval(__compiler["compile"](list("\\uFDD1string?",5),__generator()));\n+return o344(o345,o346);\n+}))();\n+((function() {var o347 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1list?",5))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o348 = _eq_;\n+var o349 = eval(__compiler["compile"](list("\\uFDD1list?",5),__generator()));\n+return o347(o348,o349);\n+}))();\n+((function() {var o350 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1vector?",5))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o351 = _eq_;\n+var o352 = eval(__compiler["compile"](list("\\uFDD1vector?",5),__generator()));\n+return o350(o351,o352);\n+}))();\n+return ((function() {var o353 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1dict?",5))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o354 = _eq_;\n+var o355 = eval(__compiler["compile"](list("\\uFDD1dict?",5),__generator()));\n+return o353(o354,o355);\n+}))();\n+}))();\n+((function() {((function() {var o356 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1boolean?",true))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o357 = _eq_;\n+var o358 = eval(__compiler["compile"](list("\\uFDD1boolean?",true),__generator()));\n+return o356(o357,o358);\n+}))();\n+((function() {var o359 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1number?",true))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o360 = _eq_;\n+var o361 = eval(__compiler["compile"](list("\\uFDD1number?",true),__generator()));\n+return o359(o360,o361);\n+}))();\n+((function() {var o362 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1symbol?",true))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o363 = _eq_;\n+var o364 = eval(__compiler["compile"](list("\\uFDD1symbol?",true),__generator()));\n+return o362(o363,o364);\n+}))();\n+((function() {var o365 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1string?",true))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o366 = _eq_;\n+var o367 = eval(__compiler["compile"](list("\\uFDD1string?",true),__generator()));\n+return o365(o366,o367);\n+}))();\n+((function() {var o368 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1list?",true))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o369 = _eq_;\n+var o370 = eval(__compiler["compile"](list("\\uFDD1list?",true),__generator()));\n+return o368(o369,o370);\n+}))();\n+((function() {var o371 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1vector?",true))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o372 = _eq_;\n+var o373 = eval(__compiler["compile"](list("\\uFDD1vector?",true),__generator()));\n+return o371(o372,o373);\n+}))();\n+return ((function() {var o374 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1dict?",true))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o375 = _eq_;\n+var o376 = eval(__compiler["compile"](list("\\uFDD1dict?",true),__generator()));\n+return o374(o375,o376);\n+}))();\n+}))();\n+((function() {((function() {var o377 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1boolean?",list("\\uFDD1quote","\\uFDD1foo")))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o378 = _eq_;\n+var o379 = eval(__compiler["compile"](list("\\uFDD1boolean?",list("\\uFDD1quote","\\uFDD1foo")),__generator()));\n+return o377(o378,o379);\n+}))();\n+((function() {var o380 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1number?",list("\\uFDD1quote","\\uFDD1foo")))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o381 = _eq_;\n+var o382 = eval(__compiler["compile"](list("\\uFDD1number?",list("\\uFDD1quote","\\uFDD1foo")),__generator()));\n+return o380(o381,o382);\n+}))();\n+((function() {var o383 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1symbol?",list("\\uFDD1quote","\\uFDD1foo")))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o384 = _eq_;\n+var o385 = eval(__compiler["compile"](list("\\uFDD1symbol?",list("\\uFDD1quote","\\uFDD1foo")),__generator()));\n+return o383(o384,o385);\n+}))();\n+((function() {var o386 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1string?",list("\\uFDD1quote","\\uFDD1foo")))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o387 = _eq_;\n+var o388 = eval(__compiler["compile"](list("\\uFDD1string?",list("\\uFDD1quote","\\uFDD1foo")),__generator()));\n+return o386(o387,o388);\n+}))();\n+((function() {var o389 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1list?",list("\\uFDD1quote","\\uFDD1foo")))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o390 = _eq_;\n+var o391 = eval(__compiler["compile"](list("\\uFDD1list?",list("\\uFDD1quote","\\uFDD1foo")),__generator()));\n+return o389(o390,o391);\n+}))();\n+((function() {var o392 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1vector?",list("\\uFDD1quote","\\uFDD1foo")))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o393 = _eq_;\n+var o394 = eval(__compiler["compile"](list("\\uFDD1vector?",list("\\uFDD1quote","\\uFDD1foo")),__generator()));\n+return o392(o393,o394);\n+}))();\n+return ((function() {var o395 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1dict?",list("\\uFDD1quote","\\uFDD1foo")))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o396 = _eq_;\n+var o397 = eval(__compiler["compile"](list("\\uFDD1dict?",list("\\uFDD1quote","\\uFDD1foo")),__generator()));\n+return o395(o396,o397);\n+}))();\n+}))();\n+((function() {((function() {var o398 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1boolean?","foo"))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o399 = _eq_;\n+var o400 = eval(__compiler["compile"](list("\\uFDD1boolean?","foo"),__generator()));\n+return o398(o399,o400);\n+}))();\n+((function() {var o401 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1number?","foo"))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o402 = _eq_;\n+var o403 = eval(__compiler["compile"](list("\\uFDD1number?","foo"),__generator()));\n+return o401(o402,o403);\n+}))();\n+((function() {var o404 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1symbol?","foo"))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o405 = _eq_;\n+var o406 = eval(__compiler["compile"](list("\\uFDD1symbol?","foo"),__generator()));\n+return o404(o405,o406);\n+}))();\n+((function() {var o407 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1string?","foo"))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o408 = _eq_;\n+var o409 = eval(__compiler["compile"](list("\\uFDD1string?","foo"),__generator()));\n+return o407(o408,o409);\n+}))();\n+((function() {var o410 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1list?","foo"))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o411 = _eq_;\n+var o412 = eval(__compiler["compile"](list("\\uFDD1list?","foo"),__generator()));\n+return o410(o411,o412);\n+}))();\n+((function() {var o413 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1vector?","foo"))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o414 = _eq_;\n+var o415 = eval(__compiler["compile"](list("\\uFDD1vector?","foo"),__generator()));\n+return o413(o414,o415);\n+}))();\n+return ((function() {var o416 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1dict?","foo"))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o417 = _eq_;\n+var o418 = eval(__compiler["compile"](list("\\uFDD1dict?","foo"),__generator()));\n+return o416(o417,o418);\n+}))();\n+}))();\n+((function() {((function() {var o419 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1boolean?",list("\\uFDD1quote",list(1,2,3))))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o420 = _eq_;\n+var o421 = eval(__compiler["compile"](list("\\uFDD1boolean?",list("\\uFDD1quote",list(1,2,3))),__generator()));\n+return o419(o420,o421);\n+}))();\n+((function() {var o422 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1number?",list("\\uFDD1quote",list(1,2,3))))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o423 = _eq_;\n+var o424 = eval(__compiler["compile"](list("\\uFDD1number?",list("\\uFDD1quote",list(1,2,3))),__generator()));\n+return o422(o423,o424);\n+}))();\n+((function() {var o425 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1symbol?",list("\\uFDD1quote",list(1,2,3))))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o426 = _eq_;\n+var o427 = eval(__compiler["compile"](list("\\uFDD1symbol?",list("\\uFDD1quote",list(1,2,3))),__generator()));\n+return o425(o426,o427);\n+}))();\n+((function() {var o428 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1string?",list("\\uFDD1quote",list(1,2,3))))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o429 = _eq_;\n+var o430 = eval(__compiler["compile"](list("\\uFDD1string?",list("\\uFDD1quote",list(1,2,3))),__generator()));\n+return o428(o429,o430);\n+}))();\n+((function() {var o431 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1list?",list("\\uFDD1quote",list(1,2,3))))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o432 = _eq_;\n+var o433 = eval(__compiler["compile"](list("\\uFDD1list?",list("\\uFDD1quote",list(1,2,3))),__generator()));\n+return o431(o432,o433);\n+}))();\n+((function() {var o434 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1vector?",list("\\uFDD1quote",list(1,2,3))))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o435 = _eq_;\n+var o436 = eval(__compiler["compile"](list("\\uFDD1vector?",list("\\uFDD1quote",list(1,2,3))),__generator()));\n+return o434(o435,o436);\n+}))();\n+return ((function() {var o437 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1dict?",list("\\uFDD1quote",list(1,2,3))))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o438 = _eq_;\n+var o439 = eval(__compiler["compile"](list("\\uFDD1dict?",list("\\uFDD1quote",list(1,2,3))),__generator()));\n+return o437(o438,o439);\n+}))();\n+}))();\n+((function() {((function() {var o440 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1boolean?",vector(1,2,3)))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o441 = _eq_;\n+var o442 = eval(__compiler["compile"](list("\\uFDD1boolean?",vector(1,2,3)),__generator()));\n+return o440(o441,o442);\n+}))();\n+((function() {var o443 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1number?",vector(1,2,3)))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o444 = _eq_;\n+var o445 = eval(__compiler["compile"](list("\\uFDD1number?",vector(1,2,3)),__generator()));\n+return o443(o444,o445);\n+}))();\n+((function() {var o446 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1symbol?",vector(1,2,3)))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o447 = _eq_;\n+var o448 = eval(__compiler["compile"](list("\\uFDD1symbol?",vector(1,2,3)),__generator()));\n+return o446(o447,o448);\n+}))();\n+((function() {var o449 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1string?",vector(1,2,3)))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o450 = _eq_;\n+var o451 = eval(__compiler["compile"](list("\\uFDD1string?",vector(1,2,3)),__generator()));\n+return o449(o450,o451);\n+}))();\n+((function() {var o452 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1list?",vector(1,2,3)))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o453 = _eq_;\n+var o454 = eval(__compiler["compile"](list("\\uFDD1list?",vector(1,2,3)),__generator()));\n+return o452(o453,o454);\n+}))();\n+((function() {var o455 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1vector?",vector(1,2,3)))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o456 = _eq_;\n+var o457 = eval(__compiler["compile"](list("\\uFDD1vector?",vector(1,2,3)),__generator()));\n+return o455(o456,o457);\n+}))();\n+return ((function() {var o458 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1dict?",vector(1,2,3)))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o459 = _eq_;\n+var o460 = eval(__compiler["compile"](list("\\uFDD1dict?",vector(1,2,3)),__generator()));\n+return o458(o459,o460);\n+}))();\n+}))();\n+((function() {((function() {var o461 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1boolean?",dict("\\uFDD1one",1)))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o462 = _eq_;\n+var o463 = eval(__compiler["compile"](list("\\uFDD1boolean?",dict("\\uFDD1one",1)),__generator()));\n+return o461(o462,o463);\n+}))();\n+((function() {var o464 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1number?",dict("\\uFDD1one",1)))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o465 = _eq_;\n+var o466 = eval(__compiler["compile"](list("\\uFDD1number?",dict("\\uFDD1one",1)),__generator()));\n+return o464(o465,o466);\n+}))();\n+((function() {var o467 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1symbol?",dict("\\uFDD1one",1)))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o468 = _eq_;\n+var o469 = eval(__compiler["compile"](list("\\uFDD1symbol?",dict("\\uFDD1one",1)),__generator()));\n+return o467(o468,o469);\n+}))();\n+((function() {var o470 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1string?",dict("\\uFDD1one",1)))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o471 = _eq_;\n+var o472 = eval(__compiler["compile"](list("\\uFDD1string?",dict("\\uFDD1one",1)),__generator()));\n+return o470(o471,o472);\n+}))();\n+((function() {var o473 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1list?",dict("\\uFDD1one",1)))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o474 = _eq_;\n+var o475 = eval(__compiler["compile"](list("\\uFDD1list?",dict("\\uFDD1one",1)),__generator()));\n+return o473(o474,o475);\n+}))();\n+((function() {var o476 = (function(comp,res){\n+return (function() {if(not(comp(res,false))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1vector?",dict("\\uFDD1one",1)))," got ",util["inspect"](res)," but expected ",util["inspect"](false)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o477 = _eq_;\n+var o478 = eval(__compiler["compile"](list("\\uFDD1vector?",dict("\\uFDD1one",1)),__generator()));\n+return o476(o477,o478);\n+}))();\n+return ((function() {var o479 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1dict?",dict("\\uFDD1one",1)))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o480 = _eq_;\n+var o481 = eval(__compiler["compile"](list("\\uFDD1dict?",dict("\\uFDD1one",1)),__generator()));\n+return o479(o480,o481);\n+}))();\n+}))();\n+((function() {var o482 = (function(comp,res){\n+return (function() {if(not(comp(res,1))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1if",true,1,2))," got ",util["inspect"](res)," but expected ",util["inspect"](1)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o483 = _eq_;\n+var o484 = eval(__compiler["compile"](list("\\uFDD1if",true,1,2),__generator()));\n+return o482(o483,o484);\n+}))();\n+((function() {var o485 = (function(comp,res){\n+return (function() {if(not(comp(res,2))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1if",false,1,2))," got ",util["inspect"](res)," but expected ",util["inspect"](2)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o486 = _eq_;\n+var o487 = eval(__compiler["compile"](list("\\uFDD1if",false,1,2),__generator()));\n+return o485(o486,o487);\n+}))();\n+((function() {var o488 = (function(comp,res){\n+return (function() {if(not(comp(res,10))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1if","\\uFDD1true",list("\\uFDD1begin",list("\\uFDD1define","\\uFDD1a",5),list("\\uFDD1*","\\uFDD1a",2))))," got ",util["inspect"](res)," but expected ",util["inspect"](10)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o489 = _eq_;\n+var o490 = eval(__compiler["compile"](list("\\uFDD1if","\\uFDD1true",list("\\uFDD1begin",list("\\uFDD1define","\\uFDD1a",5),list("\\uFDD1*","\\uFDD1a",2))),__generator()));\n+return o488(o489,o490);\n+}))();\n+var x = 3;\n+((function() {var o491 = (function(comp,res){\n+return (function() {if(not(comp(res,"\\uFDD1three"))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1cond",list(list("\\uFDD1eq?","\\uFDD1x",0),list("\\uFDD1quote","\\uFDD1zero")),list(list("\\uFDD1eq?","\\uFDD1x",1),list("\\uFDD1quote","\\uFDD1one")),list(list("\\uFDD1eq?","\\uFDD1x",2),list("\\uFDD1quote","\\uFDD1two")),list(list("\\uFDD1eq?","\\uFDD1x",3),list("\\uFDD1quote","\\uFDD1three"))))," got ",util["inspect"](res)," but expected ",util["inspect"]("\\uFDD1three")));\n+} else {return false;\n+}})()\n+;\n+});\n+var o492 = _eq_;\n+var o493 = eval(__compiler["compile"](list("\\uFDD1cond",list(list("\\uFDD1eq?","\\uFDD1x",0),list("\\uFDD1quote","\\uFDD1zero")),list(list("\\uFDD1eq?","\\uFDD1x",1),list("\\uFDD1quote","\\uFDD1one")),list(list("\\uFDD1eq?","\\uFDD1x",2),list("\\uFDD1quote","\\uFDD1two")),list(list("\\uFDD1eq?","\\uFDD1x",3),list("\\uFDD1quote","\\uFDD1three"))),__generator()));\n+return o491(o492,o493);\n+}))();\n+((function() {var o494 = (function(comp,res){\n+return (function() {if(not(comp(res,"\\uFDD1none"))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1cond",list(list("\\uFDD1eq?","\\uFDD1x",0),list("\\uFDD1quote","\\uFDD1zero")),list(list("\\uFDD1eq?","\\uFDD1x",1),list("\\uFDD1quote","\\uFDD1one")),list(list("\\uFDD1eq?","\\uFDD1x",2),list("\\uFDD1quote","\\uFDD1two")),list("\\uFDD1else",list("\\uFDD1quote","\\uFDD1none"))))," got ",util["inspect"](res)," but expected ",util["inspect"]("\\uFDD1none")));\n+} else {return false;\n+}})()\n+;\n+});\n+var o495 = _eq_;\n+var o496 = eval(__compiler["compile"](list("\\uFDD1cond",list(list("\\uFDD1eq?","\\uFDD1x",0),list("\\uFDD1quote","\\uFDD1zero")),list(list("\\uFDD1eq?","\\uFDD1x",1),list("\\uFDD1quote","\\uFDD1one")),list(list("\\uFDD1eq?","\\uFDD1x",2),list("\\uFDD1quote","\\uFDD1two")),list("\\uFDD1else",list("\\uFDD1quote","\\uFDD1none"))),__generator()));\n+return o494(o495,o496);\n+}))();\n+var func = (function() {(function() {if(true) {return "yes";\n+} else {return "no";\n+}})()\n+;\n+return (1 + 2);\n+});\n+((function() {var o497 = (function(comp,res){\n+return (function() {if(not(comp(res,3))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1func"))," got ",util["inspect"](res)," but expected ",util["inspect"](3)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o498 = _eq_;\n+var o499 = eval(__compiler["compile"](list("\\uFDD1func"),__generator()));\n+return o497(o498,o499);\n+}))();\n+var faz = (function() {return ((function() {var o500 = (function(x){\n+(2 + 3);\n+return x = 3;\n+});\n+var o501 = 1;\n+return o500(o501);\n+}))();\n+});\n+((function() {var o502 = (function(comp,res){\n+return (function() {if(not(comp(res,undefined))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1faz"))," got ",util["inspect"](res)," but expected ",util["inspect"](undefined)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o503 = _eq_;\n+var o504 = eval(__compiler["compile"](list("\\uFDD1faz"),__generator()));\n+return o502(o503,o504);\n+}))();\n+var buz = (function() {(2 + 3);\n+var a = 4;\n+});\n+((function() {var o505 = (function(comp,res){\n+return (function() {if(not(comp(res,undefined))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1buz"))," got ",util["inspect"](res)," but expected ",util["inspect"](undefined)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o506 = _eq_;\n+var o507 = eval(__compiler["compile"](list("\\uFDD1buz"),__generator()));\n+return o505(o506,o507);\n+}))();\n+((function() {var o508 = (function(comp,res){\n+return (function() {if(not(comp(res,true))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1not",list("\\uFDD1list?",0)))," got ",util["inspect"](res)," but expected ",util["inspect"](true)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o509 = _eq_;\n+var o510 = eval(__compiler["compile"](list("\\uFDD1not",list("\\uFDD1list?",0)),__generator()));\n+return o508(o509,o510);\n+}))();\n+((function() {var o511 = (function(x,y){\n+return ((function() {var o514 = (function(comp,res){\n+return (function() {if(not(comp(res,1))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"]("\\uFDD1y")," got ",util["inspect"](res)," but expected ",util["inspect"](1)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o515 = _eq_;\n+var o516 = eval(__compiler["compile"]("\\uFDD1y",__generator()));\n+return o514(o515,o516);\n+}))();\n+});\n+var o512 = 0;\n+var o513 = (o512 + 1);\n+return o511(o512,o513);\n+}))();\n+var foo = 5;\n+((function() {var o517 = (function(baz,bar){\n+return ((function() {var o520 = (function(comp,res){\n+return (function() {if(not(comp(res,25))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"](list("\\uFDD1bar"))," got ",util["inspect"](res)," but expected ",util["inspect"](25)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o521 = _eq_;\n+var o522 = eval(__compiler["compile"](list("\\uFDD1bar"),__generator()));\n+return o520(o521,o522);\n+}))();\n+});\n+var o518 = foo;\n+var o519 = (function() {return (o518 * 5);\n+});\n+return o517(o518,o519);\n+}))();\n+var foo = 5;\n+((function() {var o523 = (function(foo,bar){\n+((function() {var o526 = (function(comp,res){\n+return (function() {if(not(comp(res,5))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"]("\\uFDD1foo")," got ",util["inspect"](res)," but expected ",util["inspect"](5)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o527 = _eq_;\n+var o528 = eval(__compiler["compile"]("\\uFDD1foo",__generator()));\n+return o526(o527,o528);\n+}))();\n+((function() {var o529 = (function(comp,res){\n+return (function() {if(not(comp(res,6))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"]("\\uFDD1bar")," got ",util["inspect"](res)," but expected ",util["inspect"](6)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o530 = _eq_;\n+var o531 = eval(__compiler["compile"]("\\uFDD1bar",__generator()));\n+return o529(o530,o531);\n+}))();\n+foo = 6;\n+return ((function() {var o532 = (function(comp,res){\n+return (function() {if(not(comp(res,6))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"]("\\uFDD1foo")," got ",util["inspect"](res)," but expected ",util["inspect"](6)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o533 = _eq_;\n+var o534 = eval(__compiler["compile"]("\\uFDD1foo",__generator()));\n+return o532(o533,o534);\n+}))();\n+});\n+var o524 = foo;\n+var o525 = (o524 + 1);\n+return o523(o524,o525);\n+}))();\n+return ((function() {var o535 = (function(comp,res){\n+return (function() {if(not(comp(res,5))) {throw(str("FAILURE with ",inspect("\\uFDD1eval"),": ",util["inspect"]("\\uFDD1foo")," got ",util["inspect"](res)," but expected ",util["inspect"](5)));\n+} else {return false;\n+}})()\n+;\n+});\n+var o536 = _eq_;\n+var o537 = eval(__compiler["compile"]("\\uFDD1foo",__generator()));\n+return o535(o536,o537);\n+}))();\n+}))();\n+\ndiff --git a/backends/js.js b/backends/js.js\nindex d32eb26..7266224 100644\n--- a/backends/js.js\n+++ b/backends/js.js\n@@ -1,17 +1,17 @@\n var util = require("util");var type = (function(obj){\n-return (function() {if(number_p_(obj)) {return ((function() {return string_dash__gt_symbol("number");\n+return (function() {if(number_p_(obj)) {return ((function() {return "\\uFDD1number";\n }))();\n-} else {return (function() {if(boolean_p_(obj)) {return ((function() {return string_dash__gt_symbol("boolean");\n+} else {return (function() {if(boolean_p_(obj)) {return ((function() {return "\\uFDD1boolean";\n }))();\n-} else {return (function() {if(string_p_(obj)) {return ((function() {return string_dash__gt_symbol("string");\n+} else {return (function() {if(string_p_(obj)) {return ((function() {return "\\uFDD1string";\n }))();\n-} else {return (function() {if(null_p_(obj)) {return ((function() {return string_dash__gt_symbol("null");\n+} else {return (function() {if(null_p_(obj)) {return ((function() {return "\\uFDD1null";\n }))();\n-} else {return (function() {if(list_p_(obj)) {return ((function() {return string_dash__gt_symbol("list");\n+} else {return (function() {if(list_p_(obj)) {return ((function() {return "\\uFDD1list";\n }))();\n-} else {return (function() {if(vector_p_(obj)) {return ((function() {return string_dash__gt_symbol("vector");\n+} else {return (function() {if(vector_p_(obj)) {return ((function() {return "\\uFDD1vector";\n }))();\n-} else {return (function() {if(dict_p_(obj)) {return ((function() {return string_dash__gt_symbol("dict");\n+} else {return (function() {if(dict_p_(obj)) {return ((function() {return "\\uFDD1dict";\n }))();\n } else {return false;\n }})()\n@@ -30,28 +30,28 @@ return (function() {if(number_p_(obj)) {return ((function() {return string_dash_\n ;\n });\n var number_p_ = (function(obj){\n-return eq_p_(typeof obj,"number");\n+return _eq__eq_(typeof obj,"number");\n });\n var string_p_ = (function(obj){\n-return eq_p_(typeof obj,"string");\n+return (_eq__eq_(typeof obj,"string") && not(_eq__eq_(obj[0],"\\uFDD1")));\n });\n var symbol_p_ = (function(obj){\n-return (!!obj && obj.str !== undefined && obj.symbol !== undefined);\n+return (_eq__eq_(typeof obj,"string") && _eq__eq_(obj[0],"\\uFDD1"));\n });\n var boolean_p_ = (function(obj){\n return (eq_p_(obj,true) || eq_p_(obj,false));\n });\n var null_p_ = (function(obj){\n-return (!!obj && not(eq_p_(obj.length,undefined)) && eq_p_(obj.length,1) && eq_p_(vector_dash_ref(obj,0),null));\n+return (!!obj && not(eq_p_(obj["length"],undefined)) && eq_p_(obj["length"],1) && eq_p_(vector_dash_ref(obj,0),null));\n });\n var list_p_ = (function(obj){\n-return (!!obj && not(eq_p_(obj.length,undefined)) && not(eq_p_(obj.list,undefined)));\n+return (!!obj && not(eq_p_(obj["length"],undefined)) && not(eq_p_(obj["list"],undefined)));\n });\n var vector_p_ = (function(obj){\n-return (not(list_p_(obj)) && not(null_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && not(eq_p_(obj.length,undefined)));\n+return (not(list_p_(obj)) && not(null_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && not(eq_p_(obj["length"],undefined)));\n });\n var dict_p_ = (function(obj){\n-return (not(symbol_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && eq_p_(obj.length,undefined));\n+return (not(symbol_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && eq_p_(obj["length"],undefined));\n });\n var function_p_ = (function(obj){\n return eq_p_(typeof obj,"function");\n@@ -62,35 +62,25 @@ return (number_p_(x) || string_p_(x) || boolean_p_(x) || null_p_(x));\n var str = (function() {\n var args = vector_dash__gt_list(Array.prototype.slice.call(arguments));\n return fold((function(el,acc){\n-return (acc + inspect(el));\n+return (acc + (function() {if(string_p_(el)) {return el;\n+} else {return inspect(el);\n+}})()\n+);\n }),"",args);\n });\n var string_dash__gt_symbol = (function(str){\n return ((function() {var o1 = (function(s){\n-s = s.replace(RegExp("-","g"),"_dash_");\n-s = s.replace(RegExp("\\\\?","g"),"_p_");\n-s = s.replace(RegExp("\\\\!","g"),"_excl_");\n-s = s.replace(RegExp(">","g"),"_gt_");\n-s = s.replace(RegExp("<","g"),"_lt_");\n-s = s.replace(RegExp("%","g"),"_per_");\n-s = s.replace(RegExp("=","g"),"_eq_");\n-return {str:s, symbol:true}});\n+return ("\\uFDD1" + s);\n+});\n var o2 = str;\n return o1(o2);\n }))();\n });\n var symbol_dash__gt_string = (function(sym){\n return ((function() {var o3 = (function(s){\n-s = s.replace(RegExp("_dash_","g"),"-");\n-s = s.replace(RegExp("_p_","g"),"?");\n-s = s.replace(RegExp("_excl_","g"),"!");\n-s = s.replace(RegExp("_gt_","g"),">");\n-s = s.replace(RegExp("_lt_","g"),"<");\n-s = s.replace(RegExp("_per_","g"),"%");\n-s = s.replace(RegExp("_eq_","g"),"=");\n return s;\n });\n-var o4 = sym.str;\n+var o4 = sym["substring"](1);\n return o3(o4);\n }))();\n });\n@@ -178,14 +168,15 @@ return ((function() {var o10 = (function(access){\n return ((function() {var loop = (function(lst){\n return (function() {if(null_p_(lst)) {return false;\n } else {return (function() {if(_eq__eq_(access(car(lst)),val)) {return lst;\n-} else {return loop(cdr(lst));\n+} else {return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n }})()\n ;\n }})()\n ;\n });\n var o12 = lst;\n-return loop(o12);\n+return trampoline(loop(o12));\n }))();\n });\n var o11 = (function() {if(null_p_(rst)) {return (function(x){\n@@ -204,13 +195,19 @@ return (function() {if(null_p_(lst)) {return _emptylst;\n ;\n });\n var for_dash_each = (function(func,lst){\n+return ((function() {var loop = (function(lst){\n return (function() {if(not(null_p_(lst))) {return ((function() {func(car(lst));\n-return for_dash_each(func,cdr(lst));\n+return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n+var o13 = lst;\n+return trampoline(loop(o13));\n+}))();\n+});\n var fold = (function(func,acc,lst){\n return (function() {if(null_p_(lst)) {return acc;\n } else {return fold(func,func(car(lst),acc),cdr(lst));\n@@ -229,26 +226,27 @@ return (function() {if((i < vec.length)) {return cons(vector_dash_ref(vec,i),loo\n } else {return _emptylst}})()\n ;\n });\n-var o13 = 0;\n-return loop(o13);\n+var o14 = 0;\n+return loop(o14);\n }))();\n });\n var make_dash_vector = (function(count,val){\n-return ((function() {var o14 = (function(v){\n+return ((function() {var o15 = (function(v){\n return ((function() {var loop = (function(i){\n return (function() {if((i < count)) {return ((function() {vector_dash_put_excl_(v,i,val);\n-return loop((i + 1));\n+return vector("__tco_call",(function() {return loop((i + 1));\n+}));\n }))();\n } else {return v;\n }})()\n ;\n });\n-var o16 = 0;\n-return loop(o16);\n+var o17 = 0;\n+return trampoline(loop(o17));\n }))();\n });\n-var o15 = new Array(count);\n-return o14(o15);\n+var o16 = new Array(count);\n+return o15(o16);\n }))();\n });\n var vector = (function() {return Array.prototype.slice.call(arguments)});\n@@ -265,113 +263,119 @@ return vec.push(obj)});\n var vector_dash_find = (function(vec,val){\n return ((function() {var loop = (function(i){\n return (function() {if((i < vec.length)) {return (function() {if(eq_p_(vector_dash_ref(vec,i),val)) {return i;\n-} else {return loop((i + 1));\n+} else {return vector("__tco_call",(function() {return loop((i + 1));\n+}));\n }})()\n ;\n } else {return false;\n }})()\n ;\n });\n-var o17 = 0;\n-return loop(o17);\n+var o18 = 0;\n+return trampoline(loop(o18));\n }))();\n });\n var vector_dash_length = (function(vec){\n-return vec.length;\n+return vec["length"];\n });\n var list_dash__gt_vector = (function(lst){\n var res = [];\n for_dash_each((function(el){\n-return res.push(el);\n+return res["push"](el);\n }),lst);\n return res;\n });\n var vector_dash_map = (function(func,vec){\n var res = [];\n ((function() {var loop = (function(i){\n-return (function() {if((i < vec.length)) {return ((function() {res.push(func(vector_dash_ref(vec,i)));\n-return loop((i + 1));\n+return (function() {if((i < vec["length"])) {return ((function() {res["push"](func(vector_dash_ref(vec,i)));\n+return vector("__tco_call",(function() {return loop((i + 1));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o18 = 0;\n-return loop(o18);\n+var o19 = 0;\n+return trampoline(loop(o19));\n }))();\n return res;\n });\n var vector_dash_for_dash_each = (function(func,vec){\n return ((function() {var loop = (function(i){\n-return (function() {if((i < vec.length)) {return ((function() {func(vector_dash_ref(vec,i));\n-return loop((i + 1));\n+return (function() {if((i < vec["length"])) {return ((function() {func(vector_dash_ref(vec,i));\n+return vector("__tco_call",(function() {return loop((i + 1));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o19 = 0;\n-return loop(o19);\n+var o20 = 0;\n+return trampoline(loop(o20));\n }))();\n });\n var vector_dash_fold = (function(func,acc,vec){\n return ((function() {var loop = (function(i,acc){\n-return (function() {if((i < vector_dash_length(vec))) {return loop((i + 1),func(vector_dash_ref(vec,i),acc));\n+return (function() {if((i < vector_dash_length(vec))) {return vector("__tco_call",(function() {return loop((i + 1),func(vector_dash_ref(vec,i),acc));\n+}));\n } else {return acc;\n }})()\n ;\n });\n-var o20 = 0;\n-var o21 = acc;\n-return loop(o20,o21);\n+var o21 = 0;\n+var o22 = acc;\n+return trampoline(loop(o21,o22));\n }))();\n });\n var dict = (function() {\n var args = vector_dash__gt_list(Array.prototype.slice.call(arguments));\n var res = {};\n ((function() {var loop = (function(lst){\n-return (function() {if(not(null_p_(lst))) {return ((function() {var o23 = (function(key,val){\n+return (function() {if(not(null_p_(lst))) {return ((function() {var o24 = (function(key,val){\n dict_dash_put_excl_(res,key,val);\n-return loop(cddr(lst));\n+return vector("__tco_call",(function() {return loop(cddr(lst));\n+}));\n });\n-var o24 = car(lst);\n-var o25 = cadr(lst);\n-return o23(o24,o25);\n+var o25 = car(lst);\n+var o26 = cadr(lst);\n+return o24(o25,o26);\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o22 = args;\n-return loop(o22);\n+var o23 = args;\n+return trampoline(loop(o23));\n }))();\n return res;\n });\n var dict_dash_put_excl_ = (function(dct,k,v){\n-return dct[k.str] = v});\n+return dct[k.substring(1)] = v});\n var dict_dash_ref = (function(dct,k){\n-return dct[k.str]});\n+return dct[k.substring(1)]});\n var dict_dash_map = (function(func,dct){\n var res = dict();\n ((function() {var loop = (function(lst){\n-return (function() {if(not(null_p_(lst))) {return ((function() {var o27 = (function(k){\n+return (function() {if(not(null_p_(lst))) {return ((function() {var o28 = (function(k){\n dict_dash_put_excl_(res,k,func(dict_dash_ref(dct,k)));\n-return loop(cdr(lst));\n+return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n });\n-var o28 = car(lst);\n-return o27(o28);\n+var o29 = car(lst);\n+return o28(o29);\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o26 = keys(dct);\n-return loop(o26);\n+var o27 = keys(dct);\n+return trampoline(loop(o27));\n }))();\n return res;\n });\n var dict_dash_merge = (function(dct1,dct2){\n-return ((function() {var o29 = (function(res){\n+return ((function() {var o30 = (function(res){\n map((function(k){\n return dict_dash_put_excl_(res,k,dict_dash_ref(dct1,k));\n }),keys(dct1));\n@@ -380,8 +384,8 @@ return dict_dash_put_excl_(res,k,dict_dash_ref(dct2,k));\n }),keys(dct2));\n return res;\n });\n-var o30 = dict();\n-return o29(o30);\n+var o31 = dict();\n+return o30(o31);\n }))();\n });\n var dict_dash__gt_vector = (function(dct){\n@@ -389,14 +393,15 @@ var res = vector();\n ((function() {var loop = (function(lst){\n return (function() {if(not(null_p_(lst))) {return ((function() {vector_dash_push_excl_(res,car(lst));\n vector_dash_push_excl_(res,dict_dash_ref(dct,car(lst)));\n-return loop(cdr(lst));\n+return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o31 = keys(dct);\n-return loop(o31);\n+var o32 = keys(dct);\n+return trampoline(loop(o32));\n }))();\n return res;\n });\n@@ -404,13 +409,13 @@ var dict_dash__gt_list = (function(dct){\n return vector_dash__gt_list(dict_dash__gt_vector(dct));\n });\n var keys = (function(dct){\n-return ((function() {var o32 = (function(res){\n+return ((function() {var o33 = (function(res){\n for(var k in dct) {\n        res = cons(string_dash__gt_symbol(k), res);\n     }return res;\n });\n-var o33 = _emptylst;\n-return o32(o33);\n+var o34 = _emptylst;\n+return o33(o34);\n }))();\n });\n var vals = (function(dct){\n@@ -422,15 +427,16 @@ var zip = (function(keys,vals){\n var res = dict();\n ((function() {var loop = (function(ks,vs){\n return (function() {if(not(null_p_(ks))) {return ((function() {dict_dash_put_excl_(res,car(ks),car(vs));\n-return loop(cdr(ks),cdr(vs));\n+return vector("__tco_call",(function() {return loop(cdr(ks),cdr(vs));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o34 = keys;\n-var o35 = vals;\n-return loop(o34,o35);\n+var o35 = keys;\n+var o36 = vals;\n+return trampoline(loop(o35,o36));\n }))();\n return res;\n });\n@@ -438,9 +444,7 @@ var not = (function(obj){\n return (typeof obj !== \'number\' && !obj);\n });\n var _eq__eq_ = (function(obj1,obj2){\n-return (function() {if((symbol_p_(obj1) && symbol_p_(obj2))) {return obj1.str === obj2.str} else {return obj1 === obj2}})()\n-;\n-});\n+return obj1 === obj2});\n var _eq_ = (function(obj1,obj2){\n return (function() {if((list_p_(obj1) && list_p_(obj2))) {return ((function() {return ((function() {var loop = (function(lst1,lst2){\n var n1 = null_p_(lst1);\n@@ -459,15 +463,15 @@ return (function() {if((n1 && n2)) {return ((function() {return true;\n }})()\n ;\n });\n-var o36 = obj1;\n-var o37 = obj2;\n-return loop(o36,o37);\n+var o37 = obj1;\n+var o38 = obj2;\n+return loop(o37,o38);\n }))();\n }))();\n } else {return (function() {if((vector_p_(obj1) && vector_p_(obj2))) {return ((function() {return ((function() {var loop = (function(i){\n-return (function() {if(((i < obj1.length) && (i < obj2.length))) {return ((function() {return true;\n+return (function() {if(((i < obj1["length"]) && (i < obj2["length"]))) {return ((function() {return true;\n }))();\n-} else {return (function() {if(((i < obj1.length) || (i < obj2.length))) {return ((function() {return false;\n+} else {return (function() {if(((i < obj1["length"]) || (i < obj2["length"]))) {return ((function() {return false;\n }))();\n } else {return ((function() {return (function() {if(equal_p_(vector_dash_ref(obj1,i),vector_dash_ref(obj2,i))) {return loop((i + 1));\n } else {return false;\n@@ -479,27 +483,28 @@ return (function() {if(((i < obj1.length) && (i < obj2.length))) {return ((funct\n }})()\n ;\n });\n-var o38 = 0;\n-return loop(o38);\n+var o39 = 0;\n+return loop(o39);\n }))();\n }))();\n-} else {return (function() {if((dict_p_(obj1) && dict_p_(obj2))) {return ((function() {return ((function() {var o39 = (function(keys1,keys2){\n+} else {return (function() {if((dict_p_(obj1) && dict_p_(obj2))) {return ((function() {return ((function() {var o40 = (function(keys1,keys2){\n return (eq_p_(length(keys1),length(keys2)) && ((function() {var loop = (function(lst){\n return (function() {if(null_p_(lst)) {return true;\n-} else {return (function() {if(equal_p_(dict_dash_ref(obj1,car(lst)),dict_dash_ref(obj2,car(lst)))) {return loop(cdr(lst));\n+} else {return (function() {if(equal_p_(dict_dash_ref(obj1,car(lst)),dict_dash_ref(obj2,car(lst)))) {return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n } else {return false;\n }})()\n ;\n }})()\n ;\n });\n-var o42 = keys1;\n-return loop(o42);\n+var o43 = keys1;\n+return trampoline(loop(o43));\n }))());\n });\n-var o40 = keys(obj1);\n-var o41 = keys(obj2);\n-return o39(o40,o41);\n+var o41 = keys(obj1);\n+var o42 = keys(obj2);\n+return o40(o41,o42);\n }))();\n }))();\n } else {return ((function() {return eq_p_(obj1,obj2);\n@@ -513,109 +518,153 @@ return o39(o40,o41);\n });\n var eq_p_ = _eq__eq_;\n var equal_p_ = _eq_;\n-var display = (function(msg){\n-return console.log(msg);\n+var print = (function(msg){\n+return util["print"](msg);\n+});\n+var println = (function(msg){\n+return util["puts"](msg);\n });\n var pp = (function(obj){\n-return display(str(inspect(obj),"\\n"));\n+return println(inspect(obj));\n });\n-var inspect = (function(obj){\n-var rest = vector_dash__gt_list(Array.prototype.slice.call(arguments, 1));\n-var space = (function(obj){\n-return (function() {if((literal_p_(obj) || symbol_p_(obj))) {return ((function() {return vector_dash_length(inspect(obj));\n+var _per_inspect_dash_non_dash_sequence = (function(obj){\n+return (function() {if(number_p_(obj)) {return ((function() {return ("" + obj);\n }))();\n-} else {return (function() {if(list_p_(obj)) {return ((function() {return (length(obj) + 1 + fold((function(el,acc){\n-return (acc + space(el));\n-}),0,obj));\n+} else {return (function() {if(string_p_(obj)) {return ((function() {obj = obj["replace"](RegExp("\\\\\\\\","g"),"\\\\\\\\");\n+obj = obj["replace"](RegExp("\\n","g"),"\\\\n");\n+obj = obj["replace"](RegExp("\\r","g"),"\\\\r");\n+obj = obj["replace"](RegExp("\\t","g"),"\\\\t");\n+obj = obj["replace"](RegExp("\\"","g"),"\\\\\\"");\n+return ("\\"" + obj + "\\"");\n }))();\n-} else {return (function() {if(dict_p_(obj)) {return ((function() {return space(dict_dash__gt_list(obj));\n+} else {return (function() {if(symbol_p_(obj)) {return ((function() {return symbol_dash__gt_string(obj);\n }))();\n-} else {return (function() {if(vector_p_(obj)) {return ((function() {return space(vector_dash__gt_list(obj));\n+} else {return (function() {if(boolean_p_(obj)) {return ((function() {return (function() {if(obj) {return "#t";\n+} else {return "#f";\n+}})()\n+;\n }))();\n-} else {return false;\n+} else {return (function() {if(null_p_(obj)) {return ((function() {return "()";\n+}))();\n+} else {return (function() {if(function_p_(obj)) {return ((function() {return "<function>";\n+}))();\n+} else {return ((function() {throw("%inspect-non-sequence: unexpected type");\n+}))();\n+}})()\n+;\n+}})()\n+;\n+}})()\n+;\n }})()\n ;\n }})()\n ;\n }})()\n ;\n+});\n+var _per_recur_dash_protect = (function(obj,arg,func,halt){\n+var rest = vector_dash__gt_list(Array.prototype.slice.call(arguments, 4));\n+return ((function() {var o44 = (function(parents){\n+return (function() {if(list_dash_find(parents,obj)) {return halt;\n+} else {return func(obj,arg,(function(el,arg){\n+return _per_recur_dash_protect(el,arg,func,halt,cons(obj,parents));\n+}));\n }})()\n ;\n });\n-return ((function() {var o43 = (function(i){\n+var o45 = (function() {if(null_p_(rest)) {return _emptylst;\n+} else {return car(rest);\n+}})()\n+;\n+return o44(o45);\n+}))();\n+});\n+var _per_space = (function(obj){\n+return _per_recur_dash_protect(obj,false,(function(obj,arg,recur){\n+return (function() {if(list_p_(obj)) {return ((function() {return (length(obj) + 1 + fold((function(el,acc){\n+return (acc + recur(el,false));\n+}),0,obj));\n+}))();\n+} else {return (function() {if(dict_p_(obj)) {return ((function() {return recur(dict_dash__gt_list(obj),false);\n+}))();\n+} else {return (function() {if(vector_p_(obj)) {return ((function() {return recur(vector_dash__gt_list(obj),false);\n+}))();\n+} else {return ((function() {return vector_dash_length(_per_inspect_dash_non_dash_sequence(obj));\n+}))();\n+}})()\n+;\n+}})()\n+;\n+}})()\n+;\n+}),vector_dash_length("<circular>"));\n+});\n+var inspect = (function(obj){\n+var rest = vector_dash__gt_list(Array.prototype.slice.call(arguments, 1));\n+return ((function() {var o46 = (function(no_dash_newlines){\n+return _per_recur_dash_protect(obj,1,(function(obj,i,recur){\n var buffer = "";\n var get_dash_buffer = (function() {return buffer;\n });\n-var disp = (function(str){\n-buffer = (buffer + str);\n+var disp = (function(s){\n+buffer = (buffer + s);\n });\n var pad = (function(n){\n return vector_dash_for_dash_each((function(_){\n return disp(" ");\n }),make_dash_vector(n));\n });\n-return (function() {if(number_p_(obj)) {return ((function() {return ("" + obj);\n-}))();\n-} else {return (function() {if(string_p_(obj)) {return ((function() {return obj;\n-}))();\n-} else {return (function() {if(symbol_p_(obj)) {return ((function() {return symbol_dash__gt_string(obj);\n-}))();\n-} else {return (function() {if(boolean_p_(obj)) {return ((function() {return (function() {if(obj) {return "#t";\n-} else {return "#f";\n-}})()\n-;\n-}))();\n-} else {return (function() {if(null_p_(obj)) {return ((function() {return "()";\n-}))();\n-} else {return (function() {if(function_p_(obj)) {return ((function() {return "<function>";\n-}))();\n-} else {return (function() {if(list_p_(obj)) {return ((function() {return ((function() {var o45 = (function(node,childr,sp){\n+return (function() {if(list_p_(obj)) {return ((function() {return ((function() {var o48 = (function(sp,first){\n disp("(");\n-disp(inspect(node,(i + 1)));\n-for_dash_each((function(item){\n-(function() {if(sp) {return ((function() {disp("\\n");\n+for_dash_each((function(el){\n+(function() {if(not(first)) {return (function() {if((sp && not(no_dash_newlines))) {return ((function() {disp("\\n");\n return pad(i);\n }))();\n } else {return disp(" ");\n }})()\n ;\n-return disp(inspect(item,(i + 1)));\n-}),childr);\n+} else {return false;\n+}})()\n+;\n+disp(recur(el,(i + 1)));\n+first = false;\n+}),obj);\n disp(")");\n return get_dash_buffer();\n });\n-var o46 = car(obj);\n-var o47 = cdr(obj);\n-var o48 = (space(obj) > 30);\n-return o45(o46,o47,o48);\n+var o49 = (_per_space(obj) > 30);\n+var o50 = true;\n+return o48(o49,o50);\n }))();\n }))();\n-} else {return (function() {if(vector_p_(obj)) {return ((function() {return ((function() {var o49 = (function(first,rest,sp){\n+} else {return (function() {if(vector_p_(obj)) {return ((function() {return ((function() {var o51 = (function(sp,first){\n disp("[");\n-disp(inspect(first,(i + 1)));\n-vector_dash_for_dash_each((function(item){\n-(function() {if(sp) {return ((function() {disp("\\n");\n+vector_dash_for_dash_each((function(el){\n+(function() {if(not(first)) {return (function() {if((sp && not(no_dash_newlines))) {return ((function() {disp("\\n");\n return pad(i);\n }))();\n } else {return disp(" ");\n }})()\n ;\n-return disp(inspect(item,(i + 1)));\n-}),rest);\n+} else {return false;\n+}})()\n+;\n+disp(recur(el,(i + 1)));\n+first = false;\n+}),obj);\n disp("]");\n return get_dash_buffer();\n });\n-var o50 = vector_dash_ref(obj,0);\n-var o51 = vector_dash_slice(obj,1);\n-var o52 = (space(obj) > 30);\n-return o49(o50,o51,o52);\n+var o52 = (_per_space(obj) > 30);\n+var o53 = true;\n+return o51(o52,o53);\n }))();\n }))();\n-} else {return (function() {if(dict_p_(obj)) {return ((function() {disp("{");\n-((function() {var o53 = (function(lst,sp){\n-return ((function() {var loop = (function(lst,first){\n-return (function() {if(not(null_p_(lst))) {return ((function() {var o58 = (function(key,val){\n-(function() {if(not(first)) {return (function() {if(sp) {return ((function() {disp("\\n");\n+} else {return (function() {if(dict_p_(obj)) {return ((function() {return ((function() {var o54 = (function(sp,first){\n+disp("{");\n+for_dash_each((function(k){\n+(function() {if(not(first)) {return (function() {if((sp && not(no_dash_newlines))) {return ((function() {disp("\\n");\n return pad(i);\n }))();\n } else {return disp(" ");\n@@ -625,61 +674,45 @@ return pad(i);\n }})()\n ;\n disp(":");\n-disp(inspect(key,i));\n+disp(recur(k,i));\n disp(" ");\n-disp(inspect(val,(i + 1 + vector_dash_length(symbol_dash__gt_string(key)))));\n-return loop(cddr(lst),false);\n-});\n-var o59 = car(lst);\n-var o60 = cadr(lst);\n-return o58(o59,o60);\n-}))();\n-} else {return false;\n-}})()\n-;\n+disp(recur(dict_dash_ref(obj,k),(i + 3 + vector_dash_length(symbol_dash__gt_string(k)))));\n+first = false;\n+}),keys(obj));\n+disp("}");\n+return get_dash_buffer();\n });\n-var o56 = lst;\n-var o57 = true;\n-return loop(o56,o57);\n+var o55 = (_per_space(obj) > 30);\n+var o56 = true;\n+return o54(o55,o56);\n }))();\n-});\n-var o54 = dict_dash__gt_list(obj);\n-var o55 = (space(obj) > 30);\n-return o53(o54,o55);\n }))();\n-disp("}");\n-return get_dash_buffer();\n+} else {return ((function() {return _per_inspect_dash_non_dash_sequence(obj);\n }))();\n-} else {return false;\n-}})()\n-;\n-}})()\n-;\n-}})()\n-;\n-}})()\n-;\n-}})()\n-;\n-}})()\n-;\n }})()\n ;\n }})()\n ;\n }})()\n ;\n+}),"<circular>");\n });\n-var o44 = (function() {if(null_p_(rest)) {return 1;\n+var o47 = (function() {if(null_p_(rest)) {return false;\n } else {return car(rest);\n }})()\n ;\n-return o43(o44);\n+return o46(o47);\n }))();\n });\n var apply = (function(func,args){\n return func.apply(null,list_dash__gt_vector(args));\n });\n+var trampoline_dash_result_p_ = (function(value){\n+return (vector_p_(value) && _eq_(vector_dash_ref(value,0),"__tco_call"));\n+});\n+var trampoline = (function(value){\n+while(trampoline_dash_result_p_(value)) { value = value[1](); }return value;\n+});\n var _gensym = 0;\n var gensym = (function() {_gensym = (_gensym + 1);\n return string_dash__gt_symbol(("o" + _gensym));\n@@ -687,14 +720,14 @@ return string_dash__gt_symbol(("o" + _gensym));\n \n \n var fs = require("fs");var should_dash_return_p_ = (function(form){\n-return not((list_p_(form) && (eq_p_(car(form),string_dash__gt_symbol("throw")) || eq_p_(car(form),string_dash__gt_symbol("set_excl_")) || eq_p_(car(form),string_dash__gt_symbol("set")))));\n+return not((list_p_(form) && (eq_p_(car(form),"\\uFDD1throw") || eq_p_(car(form),"\\uFDD1set!") || eq_p_(car(form),"\\uFDD1set"))));\n });\n var generator = (function() {var code = vector();\n var make_dash_fresh = (function() {return generator();\n });\n var write = (function(src){\n var eol = vector_dash__gt_list(Array.prototype.slice.call(arguments, 1));\n-return code.push((src + (function() {if(null_p_(eol)) {return "";\n+return code["push"]((src + (function() {if(null_p_(eol)) {return "";\n } else {return "\\n";\n }})()\n ));\n@@ -702,7 +735,7 @@ return code.push((src + (function() {if(null_p_(eol)) {return "";\n var write_dash_runtime = (function(target){\n var root = vector_dash__gt_list(Array.prototype.slice.call(arguments, 1));\n return ((function() {var o1 = (function(root){\n-return (function() {if(not(equal_p_(target,"no-runtime"))) {return ((function() {(function() {if(not(equal_p_(target,"js-onlyeval"))) {return write(fs.readFileSync(str(root,"/runtime.js"),"utf-8"),true);\n+return (function() {if(not(equal_p_(target,"no-runtime"))) {return ((function() {(function() {if(not(equal_p_(target,"js-onlyeval"))) {return write(fs["readFileSync"](str(root,"/runtime.js"),"utf-8"),true);\n } else {return false;\n }})()\n ;\n@@ -760,11 +793,11 @@ return terminate_dash_expr(not(top_p_));\n });\n var write_dash_string = (function(obj,top_p_){\n return ((function() {var o5 = (function(str){\n-str = str.replace(RegExp("\\\\\\\\","g"),"\\\\\\\\");\n-str = str.replace(RegExp("\\n","g"),"\\\\n");\n-str = str.replace(RegExp("\\r","g"),"\\\\r");\n-str = str.replace(RegExp("\\t","g"),"\\\\t");\n-str = str.replace(RegExp("\\"","g"),"\\\\\\"");\n+str = str["replace"](RegExp("\\\\\\\\","g"),"\\\\\\\\");\n+str = str["replace"](RegExp("\\n","g"),"\\\\n");\n+str = str["replace"](RegExp("\\r","g"),"\\\\r");\n+str = str["replace"](RegExp("\\t","g"),"\\\\t");\n+str = str["replace"](RegExp("\\"","g"),"\\\\\\"");\n write(("\\"" + str + "\\""));\n return terminate_dash_expr(not(top_p_));\n });\n@@ -773,15 +806,32 @@ return o5(o6);\n }))();\n });\n var write_dash_symbol = (function(obj,top_p_){\n-write(("string_dash__gt_symbol(\\"" + obj.str + "\\")"));\n+write(("\\"\\\\uFDD1" + obj["substring"](1) + "\\""));\n return terminate_dash_expr(not(top_p_));\n });\n var write_dash_term = (function(obj,top_p_){\n return ((function() {var o7 = (function(obj){\n-write(obj.str);\n+var name = obj["substring"](1);\n+var parts = name["split"](".");\n+((function() {var o9 = (function(name){\n+name = name["replace"](RegExp("-","g"),"_dash_");\n+name = name["replace"](RegExp("\\\\?","g"),"_p_");\n+name = name["replace"](RegExp("\\\\!","g"),"_excl_");\n+name = name["replace"](RegExp(">","g"),"_gt_");\n+name = name["replace"](RegExp("<","g"),"_lt_");\n+name = name["replace"](RegExp("%","g"),"_per_");\n+name = name["replace"](RegExp("=","g"),"_eq_");\n+return write(name);\n+});\n+var o10 = vector_dash_ref(parts,0);\n+return o9(o10);\n+}))();\n+vector_dash_for_dash_each((function(part){\n+return write(str("[\\"",part,"\\"]"));\n+}),vector_dash_slice(parts,1));\n return terminate_dash_expr(not(top_p_));\n });\n-var o8 = (function() {if(_eq_(obj,string_dash__gt_symbol("var"))) {return string_dash__gt_symbol("_var_");\n+var o8 = (function() {if(_eq__eq_(obj,"\\uFDD1var")) {return "\\uFDD1_var_";\n } else {return obj;\n }})()\n ;\n@@ -828,7 +878,7 @@ var write_dash_lambda = (function(args,body,expr_p_,parse){\n (function() {if(list_p_(args)) {return ((function() {var comma = inline_dash_writer(",");\n var capture_dash_name = false;\n var write_dash_args = (function(args){\n-return (function() {if(not(null_p_(args))) {return ((function() {return (function() {if(eq_p_(car(args),string_dash__gt_symbol("."))) {capture_dash_name = cadr(args);\n+return (function() {if(not(null_p_(args))) {return ((function() {return (function() {if(eq_p_(car(args),"\\uFDD1.")) {capture_dash_name = cadr(args);\n } else {return ((function() {comma();\n write_dash_term(car(args));\n return write_dash_args(cdr(args));\n@@ -846,7 +896,7 @@ write("){",true);\n return (function() {if(capture_dash_name) {return ((function() {write("var ");\n write_dash_term(capture_dash_name);\n write(" = ");\n-write_dash_term(string_dash__gt_symbol("vector_dash__gt_list"));\n+write_dash_term("\\uFDD1vector->list");\n write("(Array.prototype.slice.call(arguments, ");\n write((length(args) - 2));\n return write("));",true);\n@@ -859,7 +909,7 @@ return write("));",true);\n write("var ");\n write_dash_term(args);\n write(" = ");\n-write_dash_term(string_dash__gt_symbol("vector_dash__gt_list"));\n+write_dash_term("\\uFDD1vector->list");\n return write("(Array.prototype.slice.call(arguments));",true);\n }))();\n } else {return (function() {if(null_p_(args)) {return ((function() {return write("(function() {");\n@@ -871,7 +921,7 @@ return write("(Array.prototype.slice.call(arguments));",true);\n ;\n }})()\n ;\n-((function() {var o9 = (function(i,len){\n+((function() {var o11 = (function(i,len){\n return for_dash_each((function(form){\n (function() {if((eq_p_(i,(len - 1)) && should_dash_return_p_(form))) {return write("return ");\n } else {return false;\n@@ -881,16 +931,16 @@ parse(form);\n i = (i + 1);\n }),body);\n });\n-var o10 = 0;\n-var o11 = length(body);\n-return o9(o10,o11);\n+var o12 = 0;\n+var o13 = length(body);\n+return o11(o12,o13);\n }))();\n write("})");\n return terminate_dash_expr(expr_p_);\n });\n var write_dash_func_dash_call = (function(func,args,expr_p_,parse){\n (function() {if(symbol_p_(func)) {return write_dash_term(func);\n-} else {return (function() {if(eq_p_(car(func),string_dash__gt_symbol("lambda"))) {return ((function() {write("(");\n+} else {return (function() {if(eq_p_(car(func),"\\uFDD1lambda")) {return ((function() {write("(");\n parse(func,true);\n return write(")");\n }))();\n@@ -900,14 +950,14 @@ return write(")");\n }})()\n ;\n write("(");\n-((function() {var o12 = (function(comma){\n+((function() {var o14 = (function(comma){\n return for_dash_each((function(arg){\n comma();\n return parse(arg,true);\n }),args);\n });\n-var o13 = inline_dash_writer(",");\n-return o12(o13);\n+var o15 = inline_dash_writer(",");\n+return o14(o15);\n }))();\n write(")");\n return terminate_dash_expr(expr_p_);\n@@ -917,14 +967,14 @@ return write(code);\n });\n var write_dash_op = (function(op,vals,expr_p_,parse){\n write("(");\n-((function() {var o14 = (function(op_dash_writer){\n+((function() {var o16 = (function(op_dash_writer){\n return for_dash_each((function(arg){\n op_dash_writer();\n return parse(arg,true);\n }),vals);\n });\n-var o15 = inline_dash_writer(str(" ",op," "));\n-return o14(o15);\n+var o17 = inline_dash_writer(str(" ",op," "));\n+return o16(o17);\n }))();\n write(")");\n return terminate_dash_expr(expr_p_);\n@@ -943,8 +993,8 @@ write_dash_string(cadr(el));\n return write(");");\n }),args);\n });\n-return dict(string_dash__gt_symbol("write_dash_runtime"),write_dash_runtime,string_dash__gt_symbol("write_dash_number"),write_dash_number,string_dash__gt_symbol("write_dash_string"),write_dash_string,string_dash__gt_symbol("write_dash_boolean"),write_dash_boolean,string_dash__gt_symbol("write_dash_term"),write_dash_term,string_dash__gt_symbol("write_dash_symbol"),write_dash_symbol,string_dash__gt_symbol("write_dash_empty_dash_list"),write_dash_empty_dash_list,string_dash__gt_symbol("write_dash_set"),write_dash_set,string_dash__gt_symbol("write_dash_set_excl_"),write_dash_set_excl_,string_dash__gt_symbol("write_dash_if"),write_dash_if,string_dash__gt_symbol("write_dash_lambda"),write_dash_lambda,string_dash__gt_symbol("write_dash_func_dash_call"),write_dash_func_dash_call,string_dash__gt_symbol("write_dash_raw_dash_code"),write_dash_raw_dash_code,string_dash__gt_symbol("write_dash_require"),write_dash_require,string_dash__gt_symbol("write_dash_and"),make_dash_op_dash_writer("&&"),string_dash__gt_symbol("write_dash_or"),make_dash_op_dash_writer("||"),string_dash__gt_symbol("write_dash_add"),make_dash_op_dash_writer("+"),string_dash__gt_symbol("write_dash_subtract"),make_dash_op_dash_writer("-"),string_dash__gt_symbol("write_dash_multiply"),make_dash_op_dash_writer("*"),string_dash__gt_symbol("write_dash_divide"),make_dash_op_dash_writer("/"),string_dash__gt_symbol("write_dash_gt"),make_dash_op_dash_writer(">"),string_dash__gt_symbol("write_dash_lt"),make_dash_op_dash_writer("<"),string_dash__gt_symbol("write_dash_mod"),make_dash_op_dash_writer("%"),string_dash__gt_symbol("make_dash_fresh"),make_dash_fresh,string_dash__gt_symbol("get_dash_code"),(function() {return code.join("");\n+return dict("\\uFDD1write-runtime",write_dash_runtime,"\\uFDD1write-number",write_dash_number,"\\uFDD1write-string",write_dash_string,"\\uFDD1write-boolean",write_dash_boolean,"\\uFDD1write-term",write_dash_term,"\\uFDD1write-symbol",write_dash_symbol,"\\uFDD1write-empty-list",write_dash_empty_dash_list,"\\uFDD1write-set",write_dash_set,"\\uFDD1write-set!",write_dash_set_excl_,"\\uFDD1write-if",write_dash_if,"\\uFDD1write-lambda",write_dash_lambda,"\\uFDD1write-func-call",write_dash_func_dash_call,"\\uFDD1write-raw-code",write_dash_raw_dash_code,"\\uFDD1write-require",write_dash_require,"\\uFDD1write-and",make_dash_op_dash_writer("&&"),"\\uFDD1write-or",make_dash_op_dash_writer("||"),"\\uFDD1write-add",make_dash_op_dash_writer("+"),"\\uFDD1write-subtract",make_dash_op_dash_writer("-"),"\\uFDD1write-multiply",make_dash_op_dash_writer("*"),"\\uFDD1write-divide",make_dash_op_dash_writer("/"),"\\uFDD1write-gt",make_dash_op_dash_writer(">"),"\\uFDD1write-lt",make_dash_op_dash_writer("<"),"\\uFDD1write-mod",make_dash_op_dash_writer("%"),"\\uFDD1make-fresh",make_dash_fresh,"\\uFDD1get-code",(function() {return code["join"]("");\n }));\n });\n-module.exports = generator;\n+module["exports"] = generator;\n \ndiff --git a/backends/js.ol b/backends/js.ol\nindex 2a11013..8ceab19 100644\n--- a/backends/js.ol\n+++ b/backends/js.ol\n@@ -12,7 +12,7 @@\n \n   (define (make-fresh)\n     (generator))\n-  \n+\n   (define (write src . eol)\n     (code.push (+ src (if (null? eol) "" "\\n"))))\n \n@@ -45,7 +45,7 @@\n     ;; separate lines into one call\n     (if (not expr?)\n         (write ";" #t)))\n-  \n+\n   (define (write-number obj top?)\n     (write obj)\n     (terminate-expr (not top?)))\n@@ -61,7 +61,7 @@\n     ;; list data structure implementation\n     (write "_emptylst")\n     (terminate-expr (not top?)))\n-  \n+\n   (define (write-string obj top?)\n     (let ((str obj))\n       (set! str (str.replace (RegExp "\\\\\\\\" "g") "\\\\\\\\"))\n@@ -73,20 +73,41 @@\n       (terminate-expr (not top?))))\n \n   (define (write-symbol obj top?)\n-    (write (+ "string_dash__gt_symbol(\\"" obj.str "\\")"))\n+    (write (+ "\\"\\\\uFDD1" (obj.substring 1) "\\""))\n     (terminate-expr (not top?)))\n \n   (define (write-term obj top?)\n-    (let ((obj (if (= obj \'var)\n+    (let ((obj (if (== obj \'var)\n                    \'_var_\n                    obj)))\n-      (write obj.str)\n+\n+      (define name (obj.substring 1))\n+      (define parts (name.split "."))\n+\n+      (let ((name (vector-ref parts 0)))\n+        (set! name (name.replace (RegExp "-" "g") "_dash_"))\n+        (set! name (name.replace (RegExp "\\\\?" "g") "_p_"))\n+        (set! name (name.replace (RegExp "\\\\!" "g") "_excl_"))\n+        (set! name (name.replace (RegExp ">" "g") "_gt_"))\n+        (set! name (name.replace (RegExp "<" "g") "_lt_"))\n+        (set! name (name.replace (RegExp "%" "g") "_per_"))\n+        (set! name (name.replace (RegExp "=" "g") "_eq_"))\n+        (write name))\n+      \n+      ;; Convert dots to brackets:\n+      ;; foo.bar -> foo["bar"]\n+      ;; foo.bar.baz -> foo["bar"]["baz"]\n+      (vector-for-each\n+       (lambda (part)\n+         (write (str "[\\"" part "\\"]")))\n+       (vector-slice parts 1))\n+      \n       (terminate-expr (not top?))))\n-  \n+\n   (define (write-set lval rval parse)\n     (write "var ")\n     (write-set! lval rval parse))\n-  \n+\n   (define (write-set! lval rval parse)\n     (write-term lval)\n     (write " = ")\n@@ -95,7 +116,7 @@\n     ;; need to manually terminate it\n     (write ";" #t))\n \n-  (define (write-if pred tru expr? parse . fal)    \n+  (define (write-if pred tru expr? parse . fal)\n     (write "(function() {")\n \n     (write "if(")\n@@ -113,7 +134,7 @@\n               (write "return "))\n           (parse (car fal))\n           (write "}")))\n-    \n+\n     (write "})()" #t)\n     (terminate-expr expr?))\n \n@@ -122,7 +143,7 @@\n      ((list? args)\n       (define comma (inline-writer ","))\n       (define capture-name #f)\n-      \n+\n       (define (write-args args)\n         (if (not (null? args))\n             (begin\n@@ -170,7 +191,7 @@\n                 body))\n     (write "})")\n     (terminate-expr expr?))\n-  \n+\n   (define (write-func-call func args expr? parse)\n     ;; write the calling function, which can be a symbol, a lambda, or a\n     ;; call to another function\n@@ -222,7 +243,7 @@\n                 (write-string (cadr el))\n                 (write ");"))\n               args))\n-  \n+\n   {:write-runtime write-runtime\n    :write-number write-number\n    :write-string write-string\n@@ -236,7 +257,7 @@\n    :write-lambda write-lambda\n    :write-func-call write-func-call\n    :write-raw-code write-raw-code\n-   \n+\n    ;; specials\n    :write-require write-require\n    :write-and (make-op-writer "&&")\ndiff --git a/bin/ol b/bin/ol\nindex fe69da1..0d02fee 100755\n--- a/bin/ol\n+++ b/bin/ol\n@@ -73,10 +73,10 @@ else {\n     var js = js_backend();\n \n     if(compiler_path) {\n-        js.write_dash_runtime(rt, compiler_path);\n+        js[\'write-runtime\'](rt, compiler_path);\n     }\n     else {\n-        js.write_dash_runtime(rt);\n+        js[\'write-runtime\'](rt);\n     }\n \n     var output = compiler.compile(src, js);\ndiff --git a/compiler.js b/compiler.js\nindex 7aaba9b..c844f3a 100644\n--- a/compiler.js\n+++ b/compiler.js\n@@ -1,17 +1,17 @@\n var util = require("util");var type = (function(obj){\n-return (function() {if(number_p_(obj)) {return ((function() {return string_dash__gt_symbol("number");\n+return (function() {if(number_p_(obj)) {return ((function() {return "\\uFDD1number";\n }))();\n-} else {return (function() {if(boolean_p_(obj)) {return ((function() {return string_dash__gt_symbol("boolean");\n+} else {return (function() {if(boolean_p_(obj)) {return ((function() {return "\\uFDD1boolean";\n }))();\n-} else {return (function() {if(string_p_(obj)) {return ((function() {return string_dash__gt_symbol("string");\n+} else {return (function() {if(string_p_(obj)) {return ((function() {return "\\uFDD1string";\n }))();\n-} else {return (function() {if(null_p_(obj)) {return ((function() {return string_dash__gt_symbol("null");\n+} else {return (function() {if(null_p_(obj)) {return ((function() {return "\\uFDD1null";\n }))();\n-} else {return (function() {if(list_p_(obj)) {return ((function() {return string_dash__gt_symbol("list");\n+} else {return (function() {if(list_p_(obj)) {return ((function() {return "\\uFDD1list";\n }))();\n-} else {return (function() {if(vector_p_(obj)) {return ((function() {return string_dash__gt_symbol("vector");\n+} else {return (function() {if(vector_p_(obj)) {return ((function() {return "\\uFDD1vector";\n }))();\n-} else {return (function() {if(dict_p_(obj)) {return ((function() {return string_dash__gt_symbol("dict");\n+} else {return (function() {if(dict_p_(obj)) {return ((function() {return "\\uFDD1dict";\n }))();\n } else {return false;\n }})()\n@@ -30,28 +30,28 @@ return (function() {if(number_p_(obj)) {return ((function() {return string_dash_\n ;\n });\n var number_p_ = (function(obj){\n-return eq_p_(typeof obj,"number");\n+return _eq__eq_(typeof obj,"number");\n });\n var string_p_ = (function(obj){\n-return eq_p_(typeof obj,"string");\n+return (_eq__eq_(typeof obj,"string") && not(_eq__eq_(obj[0],"\\uFDD1")));\n });\n var symbol_p_ = (function(obj){\n-return (!!obj && obj.str !== undefined && obj.symbol !== undefined);\n+return (_eq__eq_(typeof obj,"string") && _eq__eq_(obj[0],"\\uFDD1"));\n });\n var boolean_p_ = (function(obj){\n return (eq_p_(obj,true) || eq_p_(obj,false));\n });\n var null_p_ = (function(obj){\n-return (!!obj && not(eq_p_(obj.length,undefined)) && eq_p_(obj.length,1) && eq_p_(vector_dash_ref(obj,0),null));\n+return (!!obj && not(eq_p_(obj["length"],undefined)) && eq_p_(obj["length"],1) && eq_p_(vector_dash_ref(obj,0),null));\n });\n var list_p_ = (function(obj){\n-return (!!obj && not(eq_p_(obj.length,undefined)) && not(eq_p_(obj.list,undefined)));\n+return (!!obj && not(eq_p_(obj["length"],undefined)) && not(eq_p_(obj["list"],undefined)));\n });\n var vector_p_ = (function(obj){\n-return (not(list_p_(obj)) && not(null_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && not(eq_p_(obj.length,undefined)));\n+return (not(list_p_(obj)) && not(null_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && not(eq_p_(obj["length"],undefined)));\n });\n var dict_p_ = (function(obj){\n-return (not(symbol_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && eq_p_(obj.length,undefined));\n+return (not(symbol_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && eq_p_(obj["length"],undefined));\n });\n var function_p_ = (function(obj){\n return eq_p_(typeof obj,"function");\n@@ -62,35 +62,25 @@ return (number_p_(x) || string_p_(x) || boolean_p_(x) || null_p_(x));\n var str = (function() {\n var args = vector_dash__gt_list(Array.prototype.slice.call(arguments));\n return fold((function(el,acc){\n-return (acc + inspect(el));\n+return (acc + (function() {if(string_p_(el)) {return el;\n+} else {return inspect(el);\n+}})()\n+);\n }),"",args);\n });\n var string_dash__gt_symbol = (function(str){\n return ((function() {var o1 = (function(s){\n-s = s.replace(RegExp("-","g"),"_dash_");\n-s = s.replace(RegExp("\\\\?","g"),"_p_");\n-s = s.replace(RegExp("\\\\!","g"),"_excl_");\n-s = s.replace(RegExp(">","g"),"_gt_");\n-s = s.replace(RegExp("<","g"),"_lt_");\n-s = s.replace(RegExp("%","g"),"_per_");\n-s = s.replace(RegExp("=","g"),"_eq_");\n-return {str:s, symbol:true}});\n+return ("\\uFDD1" + s);\n+});\n var o2 = str;\n return o1(o2);\n }))();\n });\n var symbol_dash__gt_string = (function(sym){\n return ((function() {var o3 = (function(s){\n-s = s.replace(RegExp("_dash_","g"),"-");\n-s = s.replace(RegExp("_p_","g"),"?");\n-s = s.replace(RegExp("_excl_","g"),"!");\n-s = s.replace(RegExp("_gt_","g"),">");\n-s = s.replace(RegExp("_lt_","g"),"<");\n-s = s.replace(RegExp("_per_","g"),"%");\n-s = s.replace(RegExp("_eq_","g"),"=");\n return s;\n });\n-var o4 = sym.str;\n+var o4 = sym["substring"](1);\n return o3(o4);\n }))();\n });\n@@ -178,14 +168,15 @@ return ((function() {var o10 = (function(access){\n return ((function() {var loop = (function(lst){\n return (function() {if(null_p_(lst)) {return false;\n } else {return (function() {if(_eq__eq_(access(car(lst)),val)) {return lst;\n-} else {return loop(cdr(lst));\n+} else {return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n }})()\n ;\n }})()\n ;\n });\n var o12 = lst;\n-return loop(o12);\n+return trampoline(loop(o12));\n }))();\n });\n var o11 = (function() {if(null_p_(rst)) {return (function(x){\n@@ -204,13 +195,19 @@ return (function() {if(null_p_(lst)) {return _emptylst;\n ;\n });\n var for_dash_each = (function(func,lst){\n+return ((function() {var loop = (function(lst){\n return (function() {if(not(null_p_(lst))) {return ((function() {func(car(lst));\n-return for_dash_each(func,cdr(lst));\n+return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n+var o13 = lst;\n+return trampoline(loop(o13));\n+}))();\n+});\n var fold = (function(func,acc,lst){\n return (function() {if(null_p_(lst)) {return acc;\n } else {return fold(func,func(car(lst),acc),cdr(lst));\n@@ -229,26 +226,27 @@ return (function() {if((i < vec.length)) {return cons(vector_dash_ref(vec,i),loo\n } else {return _emptylst}})()\n ;\n });\n-var o13 = 0;\n-return loop(o13);\n+var o14 = 0;\n+return loop(o14);\n }))();\n });\n var make_dash_vector = (function(count,val){\n-return ((function() {var o14 = (function(v){\n+return ((function() {var o15 = (function(v){\n return ((function() {var loop = (function(i){\n return (function() {if((i < count)) {return ((function() {vector_dash_put_excl_(v,i,val);\n-return loop((i + 1));\n+return vector("__tco_call",(function() {return loop((i + 1));\n+}));\n }))();\n } else {return v;\n }})()\n ;\n });\n-var o16 = 0;\n-return loop(o16);\n+var o17 = 0;\n+return trampoline(loop(o17));\n }))();\n });\n-var o15 = new Array(count);\n-return o14(o15);\n+var o16 = new Array(count);\n+return o15(o16);\n }))();\n });\n var vector = (function() {return Array.prototype.slice.call(arguments)});\n@@ -265,113 +263,119 @@ return vec.push(obj)});\n var vector_dash_find = (function(vec,val){\n return ((function() {var loop = (function(i){\n return (function() {if((i < vec.length)) {return (function() {if(eq_p_(vector_dash_ref(vec,i),val)) {return i;\n-} else {return loop((i + 1));\n+} else {return vector("__tco_call",(function() {return loop((i + 1));\n+}));\n }})()\n ;\n } else {return false;\n }})()\n ;\n });\n-var o17 = 0;\n-return loop(o17);\n+var o18 = 0;\n+return trampoline(loop(o18));\n }))();\n });\n var vector_dash_length = (function(vec){\n-return vec.length;\n+return vec["length"];\n });\n var list_dash__gt_vector = (function(lst){\n var res = [];\n for_dash_each((function(el){\n-return res.push(el);\n+return res["push"](el);\n }),lst);\n return res;\n });\n var vector_dash_map = (function(func,vec){\n var res = [];\n ((function() {var loop = (function(i){\n-return (function() {if((i < vec.length)) {return ((function() {res.push(func(vector_dash_ref(vec,i)));\n-return loop((i + 1));\n+return (function() {if((i < vec["length"])) {return ((function() {res["push"](func(vector_dash_ref(vec,i)));\n+return vector("__tco_call",(function() {return loop((i + 1));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o18 = 0;\n-return loop(o18);\n+var o19 = 0;\n+return trampoline(loop(o19));\n }))();\n return res;\n });\n var vector_dash_for_dash_each = (function(func,vec){\n return ((function() {var loop = (function(i){\n-return (function() {if((i < vec.length)) {return ((function() {func(vector_dash_ref(vec,i));\n-return loop((i + 1));\n+return (function() {if((i < vec["length"])) {return ((function() {func(vector_dash_ref(vec,i));\n+return vector("__tco_call",(function() {return loop((i + 1));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o19 = 0;\n-return loop(o19);\n+var o20 = 0;\n+return trampoline(loop(o20));\n }))();\n });\n var vector_dash_fold = (function(func,acc,vec){\n return ((function() {var loop = (function(i,acc){\n-return (function() {if((i < vector_dash_length(vec))) {return loop((i + 1),func(vector_dash_ref(vec,i),acc));\n+return (function() {if((i < vector_dash_length(vec))) {return vector("__tco_call",(function() {return loop((i + 1),func(vector_dash_ref(vec,i),acc));\n+}));\n } else {return acc;\n }})()\n ;\n });\n-var o20 = 0;\n-var o21 = acc;\n-return loop(o20,o21);\n+var o21 = 0;\n+var o22 = acc;\n+return trampoline(loop(o21,o22));\n }))();\n });\n var dict = (function() {\n var args = vector_dash__gt_list(Array.prototype.slice.call(arguments));\n var res = {};\n ((function() {var loop = (function(lst){\n-return (function() {if(not(null_p_(lst))) {return ((function() {var o23 = (function(key,val){\n+return (function() {if(not(null_p_(lst))) {return ((function() {var o24 = (function(key,val){\n dict_dash_put_excl_(res,key,val);\n-return loop(cddr(lst));\n+return vector("__tco_call",(function() {return loop(cddr(lst));\n+}));\n });\n-var o24 = car(lst);\n-var o25 = cadr(lst);\n-return o23(o24,o25);\n+var o25 = car(lst);\n+var o26 = cadr(lst);\n+return o24(o25,o26);\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o22 = args;\n-return loop(o22);\n+var o23 = args;\n+return trampoline(loop(o23));\n }))();\n return res;\n });\n var dict_dash_put_excl_ = (function(dct,k,v){\n-return dct[k.str] = v});\n+return dct[k.substring(1)] = v});\n var dict_dash_ref = (function(dct,k){\n-return dct[k.str]});\n+return dct[k.substring(1)]});\n var dict_dash_map = (function(func,dct){\n var res = dict();\n ((function() {var loop = (function(lst){\n-return (function() {if(not(null_p_(lst))) {return ((function() {var o27 = (function(k){\n+return (function() {if(not(null_p_(lst))) {return ((function() {var o28 = (function(k){\n dict_dash_put_excl_(res,k,func(dict_dash_ref(dct,k)));\n-return loop(cdr(lst));\n+return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n });\n-var o28 = car(lst);\n-return o27(o28);\n+var o29 = car(lst);\n+return o28(o29);\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o26 = keys(dct);\n-return loop(o26);\n+var o27 = keys(dct);\n+return trampoline(loop(o27));\n }))();\n return res;\n });\n var dict_dash_merge = (function(dct1,dct2){\n-return ((function() {var o29 = (function(res){\n+return ((function() {var o30 = (function(res){\n map((function(k){\n return dict_dash_put_excl_(res,k,dict_dash_ref(dct1,k));\n }),keys(dct1));\n@@ -380,8 +384,8 @@ return dict_dash_put_excl_(res,k,dict_dash_ref(dct2,k));\n }),keys(dct2));\n return res;\n });\n-var o30 = dict();\n-return o29(o30);\n+var o31 = dict();\n+return o30(o31);\n }))();\n });\n var dict_dash__gt_vector = (function(dct){\n@@ -389,14 +393,15 @@ var res = vector();\n ((function() {var loop = (function(lst){\n return (function() {if(not(null_p_(lst))) {return ((function() {vector_dash_push_excl_(res,car(lst));\n vector_dash_push_excl_(res,dict_dash_ref(dct,car(lst)));\n-return loop(cdr(lst));\n+return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o31 = keys(dct);\n-return loop(o31);\n+var o32 = keys(dct);\n+return trampoline(loop(o32));\n }))();\n return res;\n });\n@@ -404,13 +409,13 @@ var dict_dash__gt_list = (function(dct){\n return vector_dash__gt_list(dict_dash__gt_vector(dct));\n });\n var keys = (function(dct){\n-return ((function() {var o32 = (function(res){\n+return ((function() {var o33 = (function(res){\n for(var k in dct) {\n        res = cons(string_dash__gt_symbol(k), res);\n     }return res;\n });\n-var o33 = _emptylst;\n-return o32(o33);\n+var o34 = _emptylst;\n+return o33(o34);\n }))();\n });\n var vals = (function(dct){\n@@ -422,15 +427,16 @@ var zip = (function(keys,vals){\n var res = dict();\n ((function() {var loop = (function(ks,vs){\n return (function() {if(not(null_p_(ks))) {return ((function() {dict_dash_put_excl_(res,car(ks),car(vs));\n-return loop(cdr(ks),cdr(vs));\n+return vector("__tco_call",(function() {return loop(cdr(ks),cdr(vs));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o34 = keys;\n-var o35 = vals;\n-return loop(o34,o35);\n+var o35 = keys;\n+var o36 = vals;\n+return trampoline(loop(o35,o36));\n }))();\n return res;\n });\n@@ -438,9 +444,7 @@ var not = (function(obj){\n return (typeof obj !== \'number\' && !obj);\n });\n var _eq__eq_ = (function(obj1,obj2){\n-return (function() {if((symbol_p_(obj1) && symbol_p_(obj2))) {return obj1.str === obj2.str} else {return obj1 === obj2}})()\n-;\n-});\n+return obj1 === obj2});\n var _eq_ = (function(obj1,obj2){\n return (function() {if((list_p_(obj1) && list_p_(obj2))) {return ((function() {return ((function() {var loop = (function(lst1,lst2){\n var n1 = null_p_(lst1);\n@@ -459,15 +463,15 @@ return (function() {if((n1 && n2)) {return ((function() {return true;\n }})()\n ;\n });\n-var o36 = obj1;\n-var o37 = obj2;\n-return loop(o36,o37);\n+var o37 = obj1;\n+var o38 = obj2;\n+return loop(o37,o38);\n }))();\n }))();\n } else {return (function() {if((vector_p_(obj1) && vector_p_(obj2))) {return ((function() {return ((function() {var loop = (function(i){\n-return (function() {if(((i < obj1.length) && (i < obj2.length))) {return ((function() {return true;\n+return (function() {if(((i < obj1["length"]) && (i < obj2["length"]))) {return ((function() {return true;\n }))();\n-} else {return (function() {if(((i < obj1.length) || (i < obj2.length))) {return ((function() {return false;\n+} else {return (function() {if(((i < obj1["length"]) || (i < obj2["length"]))) {return ((function() {return false;\n }))();\n } else {return ((function() {return (function() {if(equal_p_(vector_dash_ref(obj1,i),vector_dash_ref(obj2,i))) {return loop((i + 1));\n } else {return false;\n@@ -479,27 +483,28 @@ return (function() {if(((i < obj1.length) && (i < obj2.length))) {return ((funct\n }})()\n ;\n });\n-var o38 = 0;\n-return loop(o38);\n+var o39 = 0;\n+return loop(o39);\n }))();\n }))();\n-} else {return (function() {if((dict_p_(obj1) && dict_p_(obj2))) {return ((function() {return ((function() {var o39 = (function(keys1,keys2){\n+} else {return (function() {if((dict_p_(obj1) && dict_p_(obj2))) {return ((function() {return ((function() {var o40 = (function(keys1,keys2){\n return (eq_p_(length(keys1),length(keys2)) && ((function() {var loop = (function(lst){\n return (function() {if(null_p_(lst)) {return true;\n-} else {return (function() {if(equal_p_(dict_dash_ref(obj1,car(lst)),dict_dash_ref(obj2,car(lst)))) {return loop(cdr(lst));\n+} else {return (function() {if(equal_p_(dict_dash_ref(obj1,car(lst)),dict_dash_ref(obj2,car(lst)))) {return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n } else {return false;\n }})()\n ;\n }})()\n ;\n });\n-var o42 = keys1;\n-return loop(o42);\n+var o43 = keys1;\n+return trampoline(loop(o43));\n }))());\n });\n-var o40 = keys(obj1);\n-var o41 = keys(obj2);\n-return o39(o40,o41);\n+var o41 = keys(obj1);\n+var o42 = keys(obj2);\n+return o40(o41,o42);\n }))();\n }))();\n } else {return ((function() {return eq_p_(obj1,obj2);\n@@ -513,26 +518,42 @@ return o39(o40,o41);\n });\n var eq_p_ = _eq__eq_;\n var equal_p_ = _eq_;\n-var display = (function(msg){\n-return console.log(msg);\n+var print = (function(msg){\n+return util["print"](msg);\n+});\n+var println = (function(msg){\n+return util["puts"](msg);\n });\n var pp = (function(obj){\n-return display(str(inspect(obj),"\\n"));\n+return println(inspect(obj));\n });\n-var inspect = (function(obj){\n-var rest = vector_dash__gt_list(Array.prototype.slice.call(arguments, 1));\n-var space = (function(obj){\n-return (function() {if((literal_p_(obj) || symbol_p_(obj))) {return ((function() {return vector_dash_length(inspect(obj));\n+var _per_inspect_dash_non_dash_sequence = (function(obj){\n+return (function() {if(number_p_(obj)) {return ((function() {return ("" + obj);\n }))();\n-} else {return (function() {if(list_p_(obj)) {return ((function() {return (length(obj) + 1 + fold((function(el,acc){\n-return (acc + space(el));\n-}),0,obj));\n+} else {return (function() {if(string_p_(obj)) {return ((function() {obj = obj["replace"](RegExp("\\\\\\\\","g"),"\\\\\\\\");\n+obj = obj["replace"](RegExp("\\n","g"),"\\\\n");\n+obj = obj["replace"](RegExp("\\r","g"),"\\\\r");\n+obj = obj["replace"](RegExp("\\t","g"),"\\\\t");\n+obj = obj["replace"](RegExp("\\"","g"),"\\\\\\"");\n+return ("\\"" + obj + "\\"");\n }))();\n-} else {return (function() {if(dict_p_(obj)) {return ((function() {return space(dict_dash__gt_list(obj));\n+} else {return (function() {if(symbol_p_(obj)) {return ((function() {return symbol_dash__gt_string(obj);\n }))();\n-} else {return (function() {if(vector_p_(obj)) {return ((function() {return space(vector_dash__gt_list(obj));\n+} else {return (function() {if(boolean_p_(obj)) {return ((function() {return (function() {if(obj) {return "#t";\n+} else {return "#f";\n+}})()\n+;\n }))();\n-} else {return false;\n+} else {return (function() {if(null_p_(obj)) {return ((function() {return "()";\n+}))();\n+} else {return (function() {if(function_p_(obj)) {return ((function() {return "<function>";\n+}))();\n+} else {return ((function() {throw("%inspect-non-sequence: unexpected type");\n+}))();\n+}})()\n+;\n+}})()\n+;\n }})()\n ;\n }})()\n@@ -542,80 +563,108 @@ return (acc + space(el));\n }})()\n ;\n });\n-return ((function() {var o43 = (function(i){\n+var _per_recur_dash_protect = (function(obj,arg,func,halt){\n+var rest = vector_dash__gt_list(Array.prototype.slice.call(arguments, 4));\n+return ((function() {var o44 = (function(parents){\n+return (function() {if(list_dash_find(parents,obj)) {return halt;\n+} else {return func(obj,arg,(function(el,arg){\n+return _per_recur_dash_protect(el,arg,func,halt,cons(obj,parents));\n+}));\n+}})()\n+;\n+});\n+var o45 = (function() {if(null_p_(rest)) {return _emptylst;\n+} else {return car(rest);\n+}})()\n+;\n+return o44(o45);\n+}))();\n+});\n+var _per_space = (function(obj){\n+return _per_recur_dash_protect(obj,false,(function(obj,arg,recur){\n+return (function() {if(list_p_(obj)) {return ((function() {return (length(obj) + 1 + fold((function(el,acc){\n+return (acc + recur(el,false));\n+}),0,obj));\n+}))();\n+} else {return (function() {if(dict_p_(obj)) {return ((function() {return recur(dict_dash__gt_list(obj),false);\n+}))();\n+} else {return (function() {if(vector_p_(obj)) {return ((function() {return recur(vector_dash__gt_list(obj),false);\n+}))();\n+} else {return ((function() {return vector_dash_length(_per_inspect_dash_non_dash_sequence(obj));\n+}))();\n+}})()\n+;\n+}})()\n+;\n+}})()\n+;\n+}),vector_dash_length("<circular>"));\n+});\n+var inspect = (function(obj){\n+var rest = vector_dash__gt_list(Array.prototype.slice.call(arguments, 1));\n+return ((function() {var o46 = (function(no_dash_newlines){\n+return _per_recur_dash_protect(obj,1,(function(obj,i,recur){\n var buffer = "";\n var get_dash_buffer = (function() {return buffer;\n });\n-var disp = (function(str){\n-buffer = (buffer + str);\n+var disp = (function(s){\n+buffer = (buffer + s);\n });\n var pad = (function(n){\n return vector_dash_for_dash_each((function(_){\n return disp(" ");\n }),make_dash_vector(n));\n });\n-return (function() {if(number_p_(obj)) {return ((function() {return ("" + obj);\n-}))();\n-} else {return (function() {if(string_p_(obj)) {return ((function() {return obj;\n-}))();\n-} else {return (function() {if(symbol_p_(obj)) {return ((function() {return symbol_dash__gt_string(obj);\n-}))();\n-} else {return (function() {if(boolean_p_(obj)) {return ((function() {return (function() {if(obj) {return "#t";\n-} else {return "#f";\n-}})()\n-;\n-}))();\n-} else {return (function() {if(null_p_(obj)) {return ((function() {return "()";\n-}))();\n-} else {return (function() {if(function_p_(obj)) {return ((function() {return "<function>";\n-}))();\n-} else {return (function() {if(list_p_(obj)) {return ((function() {return ((function() {var o45 = (function(node,childr,sp){\n+return (function() {if(list_p_(obj)) {return ((function() {return ((function() {var o48 = (function(sp,first){\n disp("(");\n-disp(inspect(node,(i + 1)));\n-for_dash_each((function(item){\n-(function() {if(sp) {return ((function() {disp("\\n");\n+for_dash_each((function(el){\n+(function() {if(not(first)) {return (function() {if((sp && not(no_dash_newlines))) {return ((function() {disp("\\n");\n return pad(i);\n }))();\n } else {return disp(" ");\n }})()\n ;\n-return disp(inspect(item,(i + 1)));\n-}),childr);\n+} else {return false;\n+}})()\n+;\n+disp(recur(el,(i + 1)));\n+first = false;\n+}),obj);\n disp(")");\n return get_dash_buffer();\n });\n-var o46 = car(obj);\n-var o47 = cdr(obj);\n-var o48 = (space(obj) > 30);\n-return o45(o46,o47,o48);\n+var o49 = (_per_space(obj) > 30);\n+var o50 = true;\n+return o48(o49,o50);\n }))();\n }))();\n-} else {return (function() {if(vector_p_(obj)) {return ((function() {return ((function() {var o49 = (function(first,rest,sp){\n+} else {return (function() {if(vector_p_(obj)) {return ((function() {return ((function() {var o51 = (function(sp,first){\n disp("[");\n-disp(inspect(first,(i + 1)));\n-vector_dash_for_dash_each((function(item){\n-(function() {if(sp) {return ((function() {disp("\\n");\n+vector_dash_for_dash_each((function(el){\n+(function() {if(not(first)) {return (function() {if((sp && not(no_dash_newlines))) {return ((function() {disp("\\n");\n return pad(i);\n }))();\n } else {return disp(" ");\n }})()\n ;\n-return disp(inspect(item,(i + 1)));\n-}),rest);\n+} else {return false;\n+}})()\n+;\n+disp(recur(el,(i + 1)));\n+first = false;\n+}),obj);\n disp("]");\n return get_dash_buffer();\n });\n-var o50 = vector_dash_ref(obj,0);\n-var o51 = vector_dash_slice(obj,1);\n-var o52 = (space(obj) > 30);\n-return o49(o50,o51,o52);\n+var o52 = (_per_space(obj) > 30);\n+var o53 = true;\n+return o51(o52,o53);\n }))();\n }))();\n-} else {return (function() {if(dict_p_(obj)) {return ((function() {disp("{");\n-((function() {var o53 = (function(lst,sp){\n-return ((function() {var loop = (function(lst,first){\n-return (function() {if(not(null_p_(lst))) {return ((function() {var o58 = (function(key,val){\n-(function() {if(not(first)) {return (function() {if(sp) {return ((function() {disp("\\n");\n+} else {return (function() {if(dict_p_(obj)) {return ((function() {return ((function() {var o54 = (function(sp,first){\n+disp("{");\n+for_dash_each((function(k){\n+(function() {if(not(first)) {return (function() {if((sp && not(no_dash_newlines))) {return ((function() {disp("\\n");\n return pad(i);\n }))();\n } else {return disp(" ");\n@@ -625,61 +674,45 @@ return pad(i);\n }})()\n ;\n disp(":");\n-disp(inspect(key,i));\n+disp(recur(k,i));\n disp(" ");\n-disp(inspect(val,(i + 1 + vector_dash_length(symbol_dash__gt_string(key)))));\n-return loop(cddr(lst),false);\n-});\n-var o59 = car(lst);\n-var o60 = cadr(lst);\n-return o58(o59,o60);\n-}))();\n-} else {return false;\n-}})()\n-;\n+disp(recur(dict_dash_ref(obj,k),(i + 3 + vector_dash_length(symbol_dash__gt_string(k)))));\n+first = false;\n+}),keys(obj));\n+disp("}");\n+return get_dash_buffer();\n });\n-var o56 = lst;\n-var o57 = true;\n-return loop(o56,o57);\n+var o55 = (_per_space(obj) > 30);\n+var o56 = true;\n+return o54(o55,o56);\n }))();\n-});\n-var o54 = dict_dash__gt_list(obj);\n-var o55 = (space(obj) > 30);\n-return o53(o54,o55);\n }))();\n-disp("}");\n-return get_dash_buffer();\n+} else {return ((function() {return _per_inspect_dash_non_dash_sequence(obj);\n }))();\n-} else {return false;\n-}})()\n-;\n-}})()\n-;\n-}})()\n-;\n-}})()\n-;\n-}})()\n-;\n-}})()\n-;\n }})()\n ;\n }})()\n ;\n }})()\n ;\n+}),"<circular>");\n });\n-var o44 = (function() {if(null_p_(rest)) {return 1;\n+var o47 = (function() {if(null_p_(rest)) {return false;\n } else {return car(rest);\n }})()\n ;\n-return o43(o44);\n+return o46(o47);\n }))();\n });\n var apply = (function(func,args){\n return func.apply(null,list_dash__gt_vector(args));\n });\n+var trampoline_dash_result_p_ = (function(value){\n+return (vector_p_(value) && _eq_(vector_dash_ref(value,0),"__tco_call"));\n+});\n+var trampoline = (function(value){\n+while(trampoline_dash_result_p_(value)) { value = value[1](); }return value;\n+});\n var _gensym = 0;\n var gensym = (function() {_gensym = (_gensym + 1);\n return string_dash__gt_symbol(("o" + _gensym));\n@@ -726,7 +759,7 @@ return e1(form,e1);\n });\n var o4 = (function(x,e2){\n return (function() {if(not((i < n))) {return x;\n-} else {return ((function() {(function() {if((list_p_(x) && expander_p_(car(x)) && not(eq_p_(car(x),string_dash__gt_symbol("lambda"))))) {i = (i + 1);\n+} else {return ((function() {(function() {if((list_p_(x) && expander_p_(car(x)) && not(eq_p_(car(x),"\\uFDD1lambda")))) {i = (i + 1);\n } else {return false;\n }})()\n ;\n@@ -772,7 +805,7 @@ return e(subform,e);\n }})()\n ;\n });\n-install_dash_expander(string_dash__gt_symbol("define_dash_expander"),(function(form,e){\n+install_dash_expander("\\uFDD1define-expander",(function(form,e){\n return ((function() {var o5 = (function(sig){\n return ((function() {var o7 = (function(name,arg_dash_names,body){\n install_dash_expander(name,make_dash_expander(arg_dash_names,body));\n@@ -790,7 +823,7 @@ return o5(o6);\n }));\n var make_dash_expander = (function(arg_dash_names,body){\n assert(eq_p_(length(arg_dash_names),2),"define-expander functions must take two arguments");\n-return eval(__compiler.compile(compile(list_dash_append(list(string_dash__gt_symbol("lambda"),arg_dash_names),((function() {var o12 = (function(o11){\n+return eval(__compiler["compile"](compile(list_dash_append(list("\\uFDD1lambda",arg_dash_names),((function() {var o12 = (function(o11){\n return (function() {if(vector_p_(o11)) {return vector_dash__gt_list(o11);\n } else {return o11;\n }})()\n@@ -798,9 +831,9 @@ return (function() {if(vector_p_(o11)) {return vector_dash__gt_list(o11);\n });\n var o13 = body;\n return o12(o13);\n-}))()),macro_dash_generator.make_dash_fresh()),__generator()));\n+}))()),macro_dash_generator["make-fresh"]()),__generator()));\n });\n-install_dash_expander(string_dash__gt_symbol("define_dash_macro"),(function(form,e){\n+install_dash_expander("\\uFDD1define-macro",(function(form,e){\n return ((function() {var o14 = (function(sig){\n return ((function() {var o16 = (function(name,pattern,body){\n install_dash_macro(name,pattern,body);\n@@ -823,9 +856,9 @@ return install_dash_expander(name,make_dash_macro(pattern,body));\n var make_dash_macro = (function(pattern,body){\n return ((function() {var o20 = (function(x,e){\n return ((function() {var o23 = (function(src){\n-return eval(compile(src,macro_dash_generator.make_dash_fresh()));\n+return eval(compile(src,macro_dash_generator["make-fresh"]()));\n });\n-var o24 = list(string_dash__gt_symbol("lambda"),list(x,e),list(e,list_dash_append(list(string_dash__gt_symbol("let"),destructure(pattern,list(string_dash__gt_symbol("cdr"),x),_emptylst)),((function() {var o26 = (function(o25){\n+var o24 = list("\\uFDD1lambda",list(x,e),list(e,list_dash_append(list("\\uFDD1let",destructure(pattern,list("\\uFDD1cdr",x),_emptylst)),((function() {var o26 = (function(o25){\n return (function() {if(vector_p_(o25)) {return vector_dash__gt_list(o25);\n } else {return o25;\n }})()\n@@ -845,17 +878,17 @@ return o20(o21,o22);\n var destructure = (function(pattern,access,bindings){\n return (function() {if(null_p_(pattern)) {return ((function() {return bindings;\n }))();\n-} else {return (function() {if(eq_p_(car(pattern),string_dash__gt_symbol("."))) {return ((function() {return cons(list(cadr(pattern),access),bindings);\n+} else {return (function() {if(eq_p_(car(pattern),"\\uFDD1.")) {return ((function() {return cons(list(cadr(pattern),access),bindings);\n }))();\n-} else {return ((function() {return cons(list(car(pattern),list(string_dash__gt_symbol("car"),access)),destructure(cdr(pattern),list(string_dash__gt_symbol("cdr"),access),bindings));\n+} else {return ((function() {return cons(list(car(pattern),list("\\uFDD1car",access)),destructure(cdr(pattern),list("\\uFDD1cdr",access),bindings));\n }))();\n }})()\n ;\n }})()\n ;\n });\n-install_dash_expander(string_dash__gt_symbol("lambda"),(function(form,e){\n-return list_dash_append(list(string_dash__gt_symbol("lambda"),car(cdr(form))),((function() {var o29 = (function(o28){\n+install_dash_expander("\\uFDD1lambda",(function(form,e){\n+return list_dash_append(list("\\uFDD1lambda",car(cdr(form))),((function() {var o29 = (function(o28){\n return (function() {if(vector_p_(o28)) {return vector_dash__gt_list(o28);\n } else {return o28;\n }})()\n@@ -867,11 +900,11 @@ return e(subform,e);\n return o29(o30);\n }))());\n }));\n-install_dash_expander(string_dash__gt_symbol("cond"),(function(form,e){\n+install_dash_expander("\\uFDD1cond",(function(form,e){\n return (function() {if(null_p_(cdr(form))) {return false;\n } else {return ((function() {var o31 = (function(forms){\n return ((function() {var o33 = (function(f){\n-return (function() {if(eq_p_(car(f),string_dash__gt_symbol("else"))) {return e(list_dash_append(list(string_dash__gt_symbol("begin")),((function() {var o36 = (function(o35){\n+return (function() {if(eq_p_(car(f),"\\uFDD1else")) {return e(list_dash_append(list("\\uFDD1begin"),((function() {var o36 = (function(o35){\n return (function() {if(vector_p_(o35)) {return vector_dash__gt_list(o35);\n } else {return o35;\n }})()\n@@ -880,7 +913,7 @@ return (function() {if(vector_p_(o35)) {return vector_dash__gt_list(o35);\n var o37 = cdr(f);\n return o36(o37);\n }))()),e);\n-} else {return e(list(string_dash__gt_symbol("if"),car(f),list_dash_append(list(string_dash__gt_symbol("begin")),((function() {var o39 = (function(o38){\n+} else {return e(list("\\uFDD1if",car(f),list_dash_append(list("\\uFDD1begin"),((function() {var o39 = (function(o38){\n return (function() {if(vector_p_(o38)) {return vector_dash__gt_list(o38);\n } else {return o38;\n }})()\n@@ -888,7 +921,7 @@ return (function() {if(vector_p_(o38)) {return vector_dash__gt_list(o38);\n });\n var o40 = cdr(f);\n return o39(o40);\n-}))()),list_dash_append(list(string_dash__gt_symbol("cond")),((function() {var o42 = (function(o41){\n+}))()),list_dash_append(list("\\uFDD1cond"),((function() {var o42 = (function(o41){\n return (function() {if(vector_p_(o41)) {return vector_dash__gt_list(o41);\n } else {return o41;\n }})()\n@@ -910,8 +943,8 @@ return o31(o32);\n }})()\n ;\n }));\n-install_dash_expander(string_dash__gt_symbol("begin"),(function(form,e){\n-return e(list(list_dash_append(list(string_dash__gt_symbol("lambda"),_emptylst),((function() {var o45 = (function(o44){\n+install_dash_expander("\\uFDD1begin",(function(form,e){\n+return e(list(list_dash_append(list("\\uFDD1lambda",_emptylst),((function() {var o45 = (function(o44){\n return (function() {if(vector_p_(o44)) {return vector_dash__gt_list(o44);\n } else {return o44;\n }})()\n@@ -921,9 +954,9 @@ var o46 = cdr(form);\n return o45(o46);\n }))())),e);\n }));\n-install_dash_expander(string_dash__gt_symbol("define"),(function(form,e){\n+install_dash_expander("\\uFDD1define",(function(form,e){\n return ((function() {var o47 = (function(sig){\n-return (function() {if(list_p_(sig)) {return ((function() {return e(list(string_dash__gt_symbol("set"),car(sig),list_dash_append(list(string_dash__gt_symbol("lambda"),cdr(sig)),((function() {var o50 = (function(o49){\n+return (function() {if(list_p_(sig)) {return ((function() {return e(list("\\uFDD1set",car(sig),list_dash_append(list("\\uFDD1lambda",cdr(sig)),((function() {var o50 = (function(o49){\n return (function() {if(vector_p_(o49)) {return vector_dash__gt_list(o49);\n } else {return o49;\n }})()\n@@ -933,7 +966,7 @@ var o51 = cddr(form);\n return o50(o51);\n }))())),e);\n }))();\n-} else {return (function() {if(symbol_p_(sig)) {return ((function() {return e(list(string_dash__gt_symbol("set"),sig,caddr(form)),e);\n+} else {return (function() {if(symbol_p_(sig)) {return ((function() {return e(list("\\uFDD1set",sig,caddr(form)),e);\n }))();\n } else {return ((function() {throw(str("define requires a list"," or symbol to operate on: ",inspect(form)));\n }))();\n@@ -946,7 +979,7 @@ var o48 = cadr(form);\n return o47(o48);\n }))();\n }));\n-install_dash_expander(string_dash__gt_symbol("let"),(function(form,e){\n+install_dash_expander("\\uFDD1let",(function(form,e){\n var replace = (function(expr,old,sym){\n return (function() {if(symbol_p_(expr)) {return ((function() {return (function() {if(_eq__eq_(expr,old)) {return sym;\n } else {return expr;\n@@ -983,9 +1016,10 @@ var generate_dash_defs = (function(syms,exprs){\n return reverse(((function() {var loop = (function(lst,forms,vars,acc){\n return (function() {if(null_p_(lst)) {return acc;\n } else {return ((function() {var o56 = (function(sym,name,code){\n-return loop(cdr(lst),cdr(forms),dict_dash_merge(vars,dict(name,sym)),cons(list(string_dash__gt_symbol("define"),car(lst),fold((function(el,acc){\n+return vector("__tco_call",(function() {return loop(cdr(lst),cdr(forms),dict_dash_merge(vars,dict(name,sym)),cons(list("\\uFDD1define",car(lst),fold((function(el,acc){\n return replace(acc,el,dict_dash_ref(vars,el));\n }),code,keys(vars))),acc));\n+}));\n });\n var o57 = car(lst);\n var o58 = car(car(forms));\n@@ -999,25 +1033,25 @@ var o52 = syms;\n var o53 = exprs;\n var o54 = dict();\n var o55 = _emptylst;\n-return loop(o52,o53,o54,o55);\n+return trampoline(loop(o52,o53,o54,o55));\n }))());\n });\n var tco = (function(exprs,exit){\n var if_p_ = (function(expr){\n-return (list_p_(expr) && _eq__eq_(car(expr),string_dash__gt_symbol("if")));\n+return (list_p_(expr) && _eq__eq_(car(expr),"\\uFDD1if"));\n });\n var let_p_ = (function(expr){\n-return (list_p_(expr) && _eq__eq_(car(expr),string_dash__gt_symbol("let")));\n+return (list_p_(expr) && _eq__eq_(car(expr),"\\uFDD1let"));\n });\n var begin_p_ = (function(expr){\n-return (list_p_(expr) && _eq__eq_(car(expr),string_dash__gt_symbol("begin")));\n+return (list_p_(expr) && _eq__eq_(car(expr),"\\uFDD1begin"));\n });\n var tco_p_ = (function(expr){\n return (list_p_(expr) && _eq__eq_(car(expr),exit));\n });\n var process_dash_if = (function(expr,transform){\n-return (function() {if(null_p_(cdddr(expr))) {return list(string_dash__gt_symbol("if"),cadr(expr),transform(caddr(expr)));\n-} else {return list(string_dash__gt_symbol("if"),cadr(expr),transform(caddr(expr)),transform(car(cdddr(expr))));\n+return (function() {if(null_p_(cdddr(expr))) {return list("\\uFDD1if",cadr(expr),transform(caddr(expr)));\n+} else {return list("\\uFDD1if",cadr(expr),transform(caddr(expr)),transform(car(cdddr(expr))));\n }})()\n ;\n });\n@@ -1038,7 +1072,7 @@ return (function() {if(begin_p_(expr)) {return ((function() {return tco(expr,exi\n }))();\n } else {return (function() {if(let_p_(bottom)) {return ((function() {return reverse(cons(tco(bottom,exit),cdr(rexprs)));\n }))();\n-} else {return ((function() {return (function() {if(tco_p_(bottom)) {return reverse(cons(list(string_dash__gt_symbol("vector"),"__tco_call",list(string_dash__gt_symbol("lambda"),_emptylst,bottom)),cdr(rexprs)));\n+} else {return ((function() {return (function() {if(tco_p_(bottom)) {return reverse(cons(list("\\uFDD1vector","__tco_call",list("\\uFDD1lambda",_emptylst,bottom)),cdr(rexprs)));\n } else {return exprs;\n }})()\n ;\n@@ -1058,7 +1092,7 @@ return o60(o61);\n });\n var tco_dash_call_p_ = (function(name,expr){\n var _tco_p_ = (function(expr){\n-return (list_p_(expr) && _eq_(car(expr),string_dash__gt_symbol("vector")) && _eq_(cadr(expr),"__tco_call") && ((function() {var o64 = (function(lamb){\n+return (list_p_(expr) && _eq_(car(expr),"\\uFDD1vector") && _eq_(cadr(expr),"__tco_call") && ((function() {var o64 = (function(lamb){\n return ((function() {var o66 = (function(body){\n return _eq_(car(body),name);\n });\n@@ -1081,7 +1115,7 @@ return ((function() {var o68 = (function(name,forms){\n assert((null_p_(forms) || (list_p_(forms) && list_p_(car(forms)))),str("invalid let: ",form));\n return ((function() {var o71 = (function(syms,body){\n return ((function() {var o74 = (function(tco_dash_ed){\n-return e(list(list_dash_append(list(string_dash__gt_symbol("lambda"),_emptylst,list_dash_append(list(string_dash__gt_symbol("define"),list_dash_append(list(name),((function() {var o77 = (function(o76){\n+return e(list(list_dash_append(list("\\uFDD1lambda",_emptylst,list_dash_append(list("\\uFDD1define",list_dash_append(list(name),((function() {var o77 = (function(o76){\n return (function() {if(vector_p_(o76)) {return vector_dash__gt_list(o76);\n } else {return o76;\n }})()\n@@ -1103,7 +1137,7 @@ return (function() {if(vector_p_(o82)) {return vector_dash__gt_list(o82);\n }})()\n ;\n });\n-var o84 = list_dash_append(generate_dash_defs(syms,forms),(function() {if(tco_dash_call_p_(name,tco_dash_ed)) {return list(list(string_dash__gt_symbol("trampoline"),list_dash_append(list(name),((function() {var o86 = (function(o85){\n+var o84 = list_dash_append(generate_dash_defs(syms,forms),(function() {if(tco_dash_call_p_(name,tco_dash_ed)) {return list(list("\\uFDD1trampoline",list_dash_append(list(name),((function() {var o86 = (function(o85){\n return (function() {if(vector_p_(o85)) {return vector_dash__gt_list(o85);\n } else {return o85;\n }})()\n@@ -1151,10 +1185,10 @@ var o70 = (function() {if(symbol_p_(cadr(form))) {return caddr(form);\n return o68(o69,o70);\n }))();\n }));\n-install_dash_expander(string_dash__gt_symbol("quote"),(function(form,e){\n+install_dash_expander("\\uFDD1quote",(function(form,e){\n return ((function() {var o91 = (function(src){\n return ((function() {var o93 = (function(q){\n-return (function() {if(symbol_p_(src)) {return ((function() {return list(string_dash__gt_symbol("quote"),src);\n+return (function() {if(symbol_p_(src)) {return ((function() {return list("\\uFDD1quote",src);\n }))();\n } else {return (function() {if(literal_p_(src)) {return ((function() {return src;\n }))();\n@@ -1162,7 +1196,7 @@ return (function() {if(symbol_p_(src)) {return ((function() {return list(string_\n }))();\n } else {return (function() {if(dict_p_(src)) {return ((function() {return dict_dash_map(q,src);\n }))();\n-} else {return (function() {if(list_p_(src)) {return ((function() {return cons(string_dash__gt_symbol("list"),map(q,src));\n+} else {return (function() {if(list_p_(src)) {return ((function() {return cons("\\uFDD1list",map(q,src));\n }))();\n } else {return ((function() {throw(str("invalid type of expression: ",inspect(src)));\n }))();\n@@ -1178,7 +1212,7 @@ return (function() {if(symbol_p_(src)) {return ((function() {return list(string_\n ;\n });\n var o94 = (function(el){\n-return e(list(string_dash__gt_symbol("quote"),el),e);\n+return e(list("\\uFDD1quote",el),e);\n });\n return o93(o94);\n }))();\n@@ -1187,22 +1221,22 @@ var o92 = cadr(form);\n return o91(o92);\n }))();\n }));\n-install_dash_expander(string_dash__gt_symbol("quasiquote"),(function(form,e){\n+install_dash_expander("\\uFDD1quasiquote",(function(form,e){\n return ((function() {var o95 = (function(src){\n-return (function() {if(symbol_p_(src)) {return ((function() {return list(string_dash__gt_symbol("quote"),src);\n+return (function() {if(symbol_p_(src)) {return ((function() {return list("\\uFDD1quote",src);\n }))();\n } else {return (function() {if(literal_p_(src)) {return ((function() {return src;\n }))();\n-} else {return (function() {if(vector_p_(src)) {return ((function() {return list(string_dash__gt_symbol("list_dash__gt_vector"),unquote_dash_splice_dash_expand(vector_dash__gt_list(src),e));\n+} else {return (function() {if(vector_p_(src)) {return ((function() {return list("\\uFDD1list->vector",unquote_dash_splice_dash_expand(vector_dash__gt_list(src),e));\n }))();\n } else {return (function() {if(dict_p_(src)) {return ((function() {return dict_dash_map((function(el){\n-return (function() {if((list_p_(el) && eq_p_(car(src),string_dash__gt_symbol("unquote")))) {return e(cadr(el),e);\n-} else {return e(list(string_dash__gt_symbol("quasiquote"),el),e);\n+return (function() {if((list_p_(el) && eq_p_(car(src),"\\uFDD1unquote"))) {return e(cadr(el),e);\n+} else {return e(list("\\uFDD1quasiquote",el),e);\n }})()\n ;\n }),src);\n }))();\n-} else {return (function() {if(list_p_(src)) {return ((function() {return (function() {if(eq_p_(car(src),string_dash__gt_symbol("unquote"))) {return e(cadr(src),e);\n+} else {return (function() {if(list_p_(src)) {return ((function() {return (function() {if(eq_p_(car(src),"\\uFDD1unquote")) {return e(cadr(src),e);\n } else {return unquote_dash_splice_dash_expand(src,e);\n }})()\n ;\n@@ -1227,25 +1261,25 @@ return o95(o96);\n var unquote_dash_splice_dash_expand = (function(lst,e){\n var list_dash_push = (function(lst,item){\n return (function() {if(null_p_(item)) {return lst;\n-} else {return cons(cons(string_dash__gt_symbol("list"),reverse(item)),lst);\n+} else {return cons(cons("\\uFDD1list",reverse(item)),lst);\n }})()\n ;\n });\n var quote_dash_splice = (function(lst,lst_dash_acc,acc){\n return (function() {if(null_p_(lst)) {return list_dash_push(lst_dash_acc,acc);\n } else {return ((function() {var o97 = (function(el){\n-return (function() {if((list_p_(el) && eq_p_(car(el),string_dash__gt_symbol("unquote_dash_splicing")))) {return ((function() {var o99 = (function(src){\n+return (function() {if((list_p_(el) && eq_p_(car(el),"\\uFDD1unquote-splicing"))) {return ((function() {var o99 = (function(src){\n return quote_dash_splice(cdr(lst),cons(e(src,e),list_dash_push(lst_dash_acc,acc)),_emptylst);\n });\n-var o100 = (function() {if(literal_p_(cadr(el))) {return ((function() {return list(string_dash__gt_symbol("list"),cadr(el));\n+var o100 = (function() {if(literal_p_(cadr(el))) {return ((function() {return list("\\uFDD1list",cadr(el));\n }))();\n-} else {return (function() {if(vector_p_(cadr(el))) {return ((function() {return list(string_dash__gt_symbol("vector_dash__gt_list"),cadr(el));\n+} else {return (function() {if(vector_p_(cadr(el))) {return ((function() {return list("\\uFDD1vector->list",cadr(el));\n }))();\n } else {return (function() {if(dict_p_(cadr(el))) {return ((function() {pp(el);\n throw("cannot splice dict");\n }))();\n } else {return ((function() {return ((function() {var o101 = (function(v){\n-return list(string_dash__gt_symbol("let"),list(list(v,cadr(el))),list(string_dash__gt_symbol("if"),list(string_dash__gt_symbol("vector_p_"),v),list(string_dash__gt_symbol("vector_dash__gt_list"),v),v));\n+return list("\\uFDD1let",list(list(v,cadr(el))),list("\\uFDD1if",list("\\uFDD1vector?",v),list("\\uFDD1vector->list",v),v));\n });\n var o102 = gensym();\n return o101(o102);\n@@ -1259,7 +1293,7 @@ return o101(o102);\n ;\n return o99(o100);\n }))();\n-} else {return quote_dash_splice(cdr(lst),lst_dash_acc,cons(e(list(string_dash__gt_symbol("quasiquote"),el),e),acc));\n+} else {return quote_dash_splice(cdr(lst),lst_dash_acc,cons(e(list("\\uFDD1quasiquote",el),e),acc));\n }})()\n ;\n });\n@@ -1271,7 +1305,7 @@ return o97(o98);\n });\n return ((function() {var o103 = (function(res){\n return (function() {if(eq_p_(length(res),1)) {return car(res);\n-} else {return cons(string_dash__gt_symbol("list_dash_append"),reverse(res));\n+} else {return cons("\\uFDD1list-append",reverse(res));\n }})()\n ;\n });\n@@ -1279,8 +1313,8 @@ var o104 = quote_dash_splice(lst,_emptylst,_emptylst);\n return o103(o104);\n }))();\n });\n-install_dash_expander(string_dash__gt_symbol("eval"),(function(form,e){\n-return list(string_dash__gt_symbol("eval"),list(string_dash__gt_symbol("__compiler.compile"),e(cadr(form),e),list(string_dash__gt_symbol("__generator"))));\n+install_dash_expander("\\uFDD1eval",(function(form,e){\n+return list("\\uFDD1eval",list("\\uFDD1__compiler.compile",e(cadr(form),e),list("\\uFDD1__generator")));\n }));\n var _natives_ = dict();\n var native_dash_function = (function(name){\n@@ -1298,16 +1332,16 @@ return (symbol_p_(name) && not(eq_p_(dict_dash_ref(_natives_,name)),undefined));\n var verify_dash_not_dash_single = (function(form){\n return assert((length(form) > 1),str("form requires at least one operand:",inspect(form)));\n });\n-install_dash_native(string_dash__gt_symbol("and"),string_dash__gt_symbol("write_dash_and"),verify_dash_not_dash_single);\n-install_dash_native(string_dash__gt_symbol("or"),string_dash__gt_symbol("write_dash_or"),verify_dash_not_dash_single);\n-install_dash_native(string_dash__gt_symbol("+"),string_dash__gt_symbol("write_dash_add"),verify_dash_not_dash_single);\n-install_dash_native(string_dash__gt_symbol("_dash_"),string_dash__gt_symbol("write_dash_subtract"),verify_dash_not_dash_single);\n-install_dash_native(string_dash__gt_symbol("*"),string_dash__gt_symbol("write_dash_multiply"),verify_dash_not_dash_single);\n-install_dash_native(string_dash__gt_symbol("/"),string_dash__gt_symbol("write_dash_divide"),verify_dash_not_dash_single);\n-install_dash_native(string_dash__gt_symbol("_gt_"),string_dash__gt_symbol("write_dash_gt"),verify_dash_not_dash_single);\n-install_dash_native(string_dash__gt_symbol("_lt_"),string_dash__gt_symbol("write_dash_lt"),verify_dash_not_dash_single);\n-install_dash_native(string_dash__gt_symbol("_per_"),string_dash__gt_symbol("write_dash_mod"),verify_dash_not_dash_single);\n-install_dash_native(string_dash__gt_symbol("require"),string_dash__gt_symbol("write_dash_require"),(function(form){\n+install_dash_native("\\uFDD1and","\\uFDD1write-and",verify_dash_not_dash_single);\n+install_dash_native("\\uFDD1or","\\uFDD1write-or",verify_dash_not_dash_single);\n+install_dash_native("\\uFDD1+","\\uFDD1write-add",verify_dash_not_dash_single);\n+install_dash_native("\\uFDD1-","\\uFDD1write-subtract",verify_dash_not_dash_single);\n+install_dash_native("\\uFDD1*","\\uFDD1write-multiply",verify_dash_not_dash_single);\n+install_dash_native("\\uFDD1/","\\uFDD1write-divide",verify_dash_not_dash_single);\n+install_dash_native("\\uFDD1>","\\uFDD1write-gt",verify_dash_not_dash_single);\n+install_dash_native("\\uFDD1<","\\uFDD1write-lt",verify_dash_not_dash_single);\n+install_dash_native("\\uFDD1%","\\uFDD1write-mod",verify_dash_not_dash_single);\n+install_dash_native("\\uFDD1require","\\uFDD1write-require",(function(form){\n verify_dash_not_dash_single(form);\n return for_dash_each((function(el){\n return assert((list_p_(el) && eq_p_(length(el),2)),str("require needs a list of ","2 element lists: ",inspect(el)));\n@@ -1317,13 +1351,13 @@ var parse = (function(form,generator){\n var expr_p_ = vector_dash__gt_list(Array.prototype.slice.call(arguments, 2));\n return ((function() {var o105 = (function(expr_p_,_per_parse){\n var parse_dash_literal = (function(form){\n-return (function() {if(number_p_(form)) {return ((function() {return generator.write_dash_number(form,not(expr_p_));\n+return (function() {if(number_p_(form)) {return ((function() {return generator["write-number"](form,not(expr_p_));\n }))();\n-} else {return (function() {if(string_p_(form)) {return ((function() {return generator.write_dash_string(form,not(expr_p_));\n+} else {return (function() {if(string_p_(form)) {return ((function() {return generator["write-string"](form,not(expr_p_));\n }))();\n-} else {return (function() {if(boolean_p_(form)) {return ((function() {return generator.write_dash_boolean(form,not(expr_p_));\n+} else {return (function() {if(boolean_p_(form)) {return ((function() {return generator["write-boolean"](form,not(expr_p_));\n }))();\n-} else {return (function() {if(null_p_(form)) {return ((function() {return generator.write_dash_empty_dash_list(form,not(expr_p_));\n+} else {return (function() {if(null_p_(form)) {return ((function() {return generator["write-empty-list"](form,not(expr_p_));\n }))();\n } else {return ((function() {throw(str("Invalid literal: ",inspect(form)));\n }))();\n@@ -1339,14 +1373,14 @@ return (function() {if(number_p_(form)) {return ((function() {return generator.w\n var parse_dash_set = (function(form){\n assert(not(expr_p_),str("set{!} cannot be an expression: ",inspect(form)));\n assert(symbol_p_(cadr(form)),"set{!} expects a symbol to operate on");\n-return (function() {if(eq_p_(car(form),string_dash__gt_symbol("set"))) {return generator.write_dash_set;\n-} else {return generator.write_dash_set_excl_;\n+return (function() {if(eq_p_(car(form),"\\uFDD1set")) {return generator["write-set"];\n+} else {return generator["write-set!"];\n }})()\n (cadr(form),caddr(form),_per_parse);\n });\n var parse_dash_if = (function(form){\n assert((length(form) > 2),str("`if` has no branches: ",inspect(form)));\n-return generator.write_dash_if(cadr(form),caddr(form),expr_p_,_per_parse,(function() {if(null_p_(cdddr(form))) {return false;\n+return generator["write-if"](cadr(form),caddr(form),expr_p_,_per_parse,(function() {if(null_p_(cdddr(form))) {return false;\n } else {return car(cdddr(form));\n }})()\n );\n@@ -1354,7 +1388,7 @@ return generator.write_dash_if(cadr(form),caddr(form),expr_p_,_per_parse,(functi\n var parse_dash_lambda = (function(form){\n assert((null_p_(cadr(form)) || list_p_(cadr(form)) || symbol_p_(cadr(form))),"lambda expects a list or symbol for arguments");\n return ((function() {var o108 = (function(args){\n-return generator.write_dash_lambda(args,cddr(form),expr_p_,_per_parse);\n+return generator["write-lambda"](args,cddr(form),expr_p_,_per_parse);\n });\n var o109 = cadr(form);\n return o108(o109);\n@@ -1363,7 +1397,7 @@ return o108(o109);\n var parse_dash_func_dash_call = (function(form){\n return ((function() {var o110 = (function(func){\n assert((symbol_p_(func) || list_p_(func)),str("operator is not a procedure: ",inspect(form)));\n-return generator.write_dash_func_dash_call(func,cdr(form),expr_p_,_per_parse);\n+return generator["write-func-call"](func,cdr(form),expr_p_,_per_parse);\n });\n var o111 = car(form);\n return o110(o111);\n@@ -1371,7 +1405,7 @@ return o110(o111);\n });\n var parse_dash_quoted = (function(form){\n return ((function() {var o112 = (function(src){\n-return (function() {if(symbol_p_(src)) {return ((function() {return generator.write_dash_symbol(src,not(expr_p_));\n+return (function() {if(symbol_p_(src)) {return ((function() {return generator["write-symbol"](src,not(expr_p_));\n }))();\n } else {return (function() {if(literal_p_(src)) {return ((function() {return parse_dash_literal(src);\n }))();\n@@ -1388,16 +1422,16 @@ return o112(o113);\n });\n var parse_dash_list = (function(form){\n return ((function() {var o114 = (function(first){\n-return (function() {if(eq_p_(first,string_dash__gt_symbol("if"))) {return ((function() {return parse_dash_if(form);\n+return (function() {if(eq_p_(first,"\\uFDD1if")) {return ((function() {return parse_dash_if(form);\n }))();\n-} else {return (function() {if(eq_p_(first,string_dash__gt_symbol("lambda"))) {return ((function() {return parse_dash_lambda(form);\n+} else {return (function() {if(eq_p_(first,"\\uFDD1lambda")) {return ((function() {return parse_dash_lambda(form);\n }))();\n-} else {return (function() {if(eq_p_(first,string_dash__gt_symbol("quote"))) {return ((function() {return parse_dash_quoted(form);\n+} else {return (function() {if(eq_p_(first,"\\uFDD1quote")) {return ((function() {return parse_dash_quoted(form);\n }))();\n-} else {return (function() {if((eq_p_(first,string_dash__gt_symbol("set_excl_")) || eq_p_(first,string_dash__gt_symbol("set")))) {return ((function() {return parse_dash_set(form);\n+} else {return (function() {if((eq_p_(first,"\\uFDD1set!") || eq_p_(first,"\\uFDD1set"))) {return ((function() {return parse_dash_set(form);\n }))();\n-} else {return (function() {if(eq_p_(first,string_dash__gt_symbol("_per_raw"))) {return ((function() {assert(string_p_(cadr(form)),"%raw expects a string");\n-return generator.write_dash_raw_dash_code(cadr(form));\n+} else {return (function() {if(eq_p_(first,"\\uFDD1%raw")) {return ((function() {assert(string_p_(cadr(form)),"%raw expects a string");\n+return generator["write-raw-code"](cadr(form));\n }))();\n } else {return (function() {if(native_p_(first)) {return ((function() {return native_dash_function(first)(form,generator,expr_p_,_per_parse);\n }))();\n@@ -1421,16 +1455,16 @@ return o114(o115);\n }))();\n });\n var parse_dash_vector = (function(vec){\n-return parse_dash_list(cons(string_dash__gt_symbol("vector"),vector_dash__gt_list(vec)));\n+return parse_dash_list(cons("\\uFDD1vector",vector_dash__gt_list(vec)));\n });\n var parse_dash_dict = (function(dict){\n return ((function() {var o116 = (function(lst,i){\n return ((function() {var o119 = (function(qlst){\n-return parse_dash_list(cons(string_dash__gt_symbol("dict"),qlst));\n+return parse_dash_list(cons("\\uFDD1dict",qlst));\n });\n var o120 = map((function(el){\n i = (i + 1);\n-return (function() {if(eq_p_(((i - 1) % 2),0)) {return list(string_dash__gt_symbol("quote"),el);\n+return (function() {if(eq_p_(((i - 1) % 2),0)) {return list("\\uFDD1quote",el);\n } else {return el;\n }})()\n ;\n@@ -1443,7 +1477,7 @@ var o118 = 0;\n return o116(o117,o118);\n }))();\n });\n-return (function() {if(symbol_p_(form)) {return ((function() {return generator.write_dash_term(form,not(expr_p_));\n+return (function() {if(symbol_p_(form)) {return ((function() {return generator["write-term"](form,not(expr_p_));\n }))();\n } else {return (function() {if(literal_p_(form)) {return ((function() {return parse_dash_literal(form);\n }))();\n@@ -1468,8 +1502,8 @@ return (function() {if(symbol_p_(form)) {return ((function() {return generator.w\n });\n var o106 = opt(expr_p_,false);\n var o107 = (function(form){\n-var expr_p_ = vector_dash__gt_list(Array.prototype.slice.call(arguments, 1));\n-return parse(form,generator,opt(expr_p_,false));\n+var o106 = vector_dash__gt_list(Array.prototype.slice.call(arguments, 1));\n+return parse(form,generator,opt(o106,false));\n });\n return o105(o106,o107);\n }))();\n@@ -1483,13 +1517,13 @@ var compile = (function(src,generator){\n }})()\n ;\n return ((function() {var o121 = (function(forms){\n-(function() {if(eq_p_(car(forms),string_dash__gt_symbol("begin"))) {return for_dash_each((function(form){\n+(function() {if(eq_p_(car(forms),"\\uFDD1begin")) {return for_dash_each((function(form){\n return parse(expand(form),generator);\n }),cdr(forms));\n } else {return parse(expand(forms),generator);\n }})()\n ;\n-return generator.get_dash_code();\n+return generator["get-code"]();\n });\n var o122 = (function() {if(string_p_(src)) {return read(src);\n } else {return src;\n@@ -1498,7 +1532,7 @@ var o122 = (function() {if(string_p_(src)) {return read(src);\n return o121(o122);\n }))();\n });\n-module.exports = dict(string_dash__gt_symbol("read"),read,string_dash__gt_symbol("expand"),expand,string_dash__gt_symbol("parse"),parse,string_dash__gt_symbol("compile"),compile,string_dash__gt_symbol("install_dash_expander"),install_dash_expander,string_dash__gt_symbol("expand_dash_once"),expand_dash_once,string_dash__gt_symbol("expand_dash_nth"),expand_dash_nth,string_dash__gt_symbol("pp"),pp,string_dash__gt_symbol("set_dash_macro_dash_generator"),(function(g){\n+module["exports"] = dict("\\uFDD1read",read,"\\uFDD1expand",expand,"\\uFDD1parse",parse,"\\uFDD1compile",compile,"\\uFDD1install-expander",install_dash_expander,"\\uFDD1expand-once",expand_dash_once,"\\uFDD1expand-nth",expand_dash_nth,"\\uFDD1pp",pp,"\\uFDD1set-macro-generator",(function(g){\n return (function() {if(not(macro_dash_generator)) {macro_dash_generator = g;\n } else {return false;\n }})()\ndiff --git a/grammar.js b/grammar.js\nindex 16250a3..ed3d4c0 100644\n--- a/grammar.js\n+++ b/grammar.js\n@@ -1,17 +1,17 @@\n var util = require("util");var type = (function(obj){\n-return (function() {if(number_p_(obj)) {return ((function() {return string_dash__gt_symbol("number");\n+return (function() {if(number_p_(obj)) {return ((function() {return "\\uFDD1number";\n }))();\n-} else {return (function() {if(boolean_p_(obj)) {return ((function() {return string_dash__gt_symbol("boolean");\n+} else {return (function() {if(boolean_p_(obj)) {return ((function() {return "\\uFDD1boolean";\n }))();\n-} else {return (function() {if(string_p_(obj)) {return ((function() {return string_dash__gt_symbol("string");\n+} else {return (function() {if(string_p_(obj)) {return ((function() {return "\\uFDD1string";\n }))();\n-} else {return (function() {if(null_p_(obj)) {return ((function() {return string_dash__gt_symbol("null");\n+} else {return (function() {if(null_p_(obj)) {return ((function() {return "\\uFDD1null";\n }))();\n-} else {return (function() {if(list_p_(obj)) {return ((function() {return string_dash__gt_symbol("list");\n+} else {return (function() {if(list_p_(obj)) {return ((function() {return "\\uFDD1list";\n }))();\n-} else {return (function() {if(vector_p_(obj)) {return ((function() {return string_dash__gt_symbol("vector");\n+} else {return (function() {if(vector_p_(obj)) {return ((function() {return "\\uFDD1vector";\n }))();\n-} else {return (function() {if(dict_p_(obj)) {return ((function() {return string_dash__gt_symbol("dict");\n+} else {return (function() {if(dict_p_(obj)) {return ((function() {return "\\uFDD1dict";\n }))();\n } else {return false;\n }})()\n@@ -30,28 +30,31 @@ return (function() {if(number_p_(obj)) {return ((function() {return string_dash_\n ;\n });\n var number_p_ = (function(obj){\n-return eq_p_(typeof obj,"number");\n+return _eq__eq_(typeof obj,"number");\n });\n var string_p_ = (function(obj){\n-return eq_p_(typeof obj,"string");\n+return (_eq__eq_(typeof obj,"string") && not(_eq__eq_(obj[0],"\\uFDD1")));\n });\n var symbol_p_ = (function(obj){\n-return (!!obj && obj.str !== undefined && obj.symbol !== undefined);\n+return (_eq__eq_(typeof obj,"string") && _eq__eq_(obj[0],"\\uFDD1"));\n });\n var boolean_p_ = (function(obj){\n return (eq_p_(obj,true) || eq_p_(obj,false));\n });\n var null_p_ = (function(obj){\n-return (!!obj && not(eq_p_(obj.length,undefined)) && eq_p_(obj.length,1) && eq_p_(vector_dash_ref(obj,0),null));\n+return (!!obj && not(eq_p_(obj["length"],undefined)) && eq_p_(obj["length"],1) && eq_p_(vector_dash_ref(obj,0),null));\n });\n var list_p_ = (function(obj){\n-return (!!obj && not(eq_p_(obj.list,undefined)));\n+return (!!obj && not(eq_p_(obj["length"],undefined)) && not(eq_p_(obj["list"],undefined)));\n });\n var vector_p_ = (function(obj){\n-return (not(list_p_(obj)) && not(null_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && not(eq_p_(obj.length,undefined)));\n+return (not(list_p_(obj)) && not(null_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && not(eq_p_(obj["length"],undefined)));\n });\n var dict_p_ = (function(obj){\n-return (not(symbol_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && eq_p_(obj.length,undefined));\n+return (not(symbol_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && eq_p_(obj["length"],undefined));\n+});\n+var function_p_ = (function(obj){\n+return eq_p_(typeof obj,"function");\n });\n var literal_p_ = (function(x){\n return (number_p_(x) || string_p_(x) || boolean_p_(x) || null_p_(x));\n@@ -59,35 +62,25 @@ return (number_p_(x) || string_p_(x) || boolean_p_(x) || null_p_(x));\n var str = (function() {\n var args = vector_dash__gt_list(Array.prototype.slice.call(arguments));\n return fold((function(el,acc){\n-return (acc + inspect(el));\n+return (acc + (function() {if(string_p_(el)) {return el;\n+} else {return inspect(el);\n+}})()\n+);\n }),"",args);\n });\n var string_dash__gt_symbol = (function(str){\n return ((function() {var o1 = (function(s){\n-s = s.replace(RegExp("-","g"),"_dash_");\n-s = s.replace(RegExp("\\\\?","g"),"_p_");\n-s = s.replace(RegExp("\\\\!","g"),"_excl_");\n-s = s.replace(RegExp(">","g"),"_gt_");\n-s = s.replace(RegExp("<","g"),"_lt_");\n-s = s.replace(RegExp("%","g"),"_per_");\n-s = s.replace(RegExp("=","g"),"_eq_");\n-return {str:s, symbol:true}});\n+return ("\\uFDD1" + s);\n+});\n var o2 = str;\n return o1(o2);\n }))();\n });\n var symbol_dash__gt_string = (function(sym){\n return ((function() {var o3 = (function(s){\n-s = s.replace(RegExp("_dash_","g"),"-");\n-s = s.replace(RegExp("_p_","g"),"?");\n-s = s.replace(RegExp("_excl_","g"),"!");\n-s = s.replace(RegExp("_gt_","g"),">");\n-s = s.replace(RegExp("_lt_","g"),"<");\n-s = s.replace(RegExp("_per_","g"),"%");\n-s = s.replace(RegExp("_eq_","g"),"=");\n return s;\n });\n-var o4 = sym.str;\n+var o4 = sym["substring"](1);\n return o3(o4);\n }))();\n });\n@@ -170,17 +163,29 @@ return loop(o9);\n }))();\n });\n var list_dash_find = (function(lst,val){\n+var rst = vector_dash__gt_list(Array.prototype.slice.call(arguments, 2));\n+return ((function() {var o10 = (function(access){\n return ((function() {var loop = (function(lst){\n return (function() {if(null_p_(lst)) {return false;\n-} else {return (function() {if(eq_p_(car(lst),val)) {return lst;\n-} else {return loop(cdr(lst));\n+} else {return (function() {if(_eq__eq_(access(car(lst)),val)) {return lst;\n+} else {return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n }})()\n ;\n }})()\n ;\n });\n-var o10 = lst;\n-return loop(o10);\n+var o12 = lst;\n+return trampoline(loop(o12));\n+}))();\n+});\n+var o11 = (function() {if(null_p_(rst)) {return (function(x){\n+return x;\n+});\n+} else {return car(rst);\n+}})()\n+;\n+return o10(o11);\n }))();\n });\n var map = (function(func,lst){\n@@ -190,13 +195,19 @@ return (function() {if(null_p_(lst)) {return _emptylst;\n ;\n });\n var for_dash_each = (function(func,lst){\n+return ((function() {var loop = (function(lst){\n return (function() {if(not(null_p_(lst))) {return ((function() {func(car(lst));\n-return for_dash_each(func,cdr(lst));\n+return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n+var o13 = lst;\n+return trampoline(loop(o13));\n+}))();\n+});\n var fold = (function(func,acc,lst){\n return (function() {if(null_p_(lst)) {return acc;\n } else {return fold(func,func(car(lst),acc),cdr(lst));\n@@ -215,27 +226,27 @@ return (function() {if((i < vec.length)) {return cons(vector_dash_ref(vec,i),loo\n } else {return _emptylst}})()\n ;\n });\n-var o11 = 0;\n-return loop(o11);\n+var o14 = 0;\n+return loop(o14);\n }))();\n });\n-var vector_dash_to_dash_list = vector_dash__gt_list;\n var make_dash_vector = (function(count,val){\n-return ((function() {var o12 = (function(v){\n+return ((function() {var o15 = (function(v){\n return ((function() {var loop = (function(i){\n return (function() {if((i < count)) {return ((function() {vector_dash_put_excl_(v,i,val);\n-return loop((i + 1));\n+return vector("__tco_call",(function() {return loop((i + 1));\n+}));\n }))();\n } else {return v;\n }})()\n ;\n });\n-var o14 = 0;\n-return loop(o14);\n+var o17 = 0;\n+return trampoline(loop(o17));\n }))();\n });\n-var o13 = new Array(count);\n-return o12(o13);\n+var o16 = new Array(count);\n+return o15(o16);\n }))();\n });\n var vector = (function() {return Array.prototype.slice.call(arguments)});\n@@ -252,124 +263,145 @@ return vec.push(obj)});\n var vector_dash_find = (function(vec,val){\n return ((function() {var loop = (function(i){\n return (function() {if((i < vec.length)) {return (function() {if(eq_p_(vector_dash_ref(vec,i),val)) {return i;\n-} else {return loop((i + 1));\n+} else {return vector("__tco_call",(function() {return loop((i + 1));\n+}));\n }})()\n ;\n } else {return false;\n }})()\n ;\n });\n-var o15 = 0;\n-return loop(o15);\n+var o18 = 0;\n+return trampoline(loop(o18));\n }))();\n });\n var vector_dash_length = (function(vec){\n-return vec.length;\n+return vec["length"];\n });\n var list_dash__gt_vector = (function(lst){\n var res = [];\n for_dash_each((function(el){\n-return res.push(el);\n+return res["push"](el);\n }),lst);\n return res;\n });\n var vector_dash_map = (function(func,vec){\n var res = [];\n ((function() {var loop = (function(i){\n-return (function() {if((i < vec.length)) {return ((function() {res.push(func(vector_dash_ref(vec,i)));\n-return loop((i + 1));\n+return (function() {if((i < vec["length"])) {return ((function() {res["push"](func(vector_dash_ref(vec,i)));\n+return vector("__tco_call",(function() {return loop((i + 1));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o16 = 0;\n-return loop(o16);\n+var o19 = 0;\n+return trampoline(loop(o19));\n }))();\n return res;\n });\n var vector_dash_for_dash_each = (function(func,vec){\n return ((function() {var loop = (function(i){\n-return (function() {if((i < vec.length)) {return ((function() {func(vector_dash_ref(vec,i));\n-return loop((i + 1));\n+return (function() {if((i < vec["length"])) {return ((function() {func(vector_dash_ref(vec,i));\n+return vector("__tco_call",(function() {return loop((i + 1));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o17 = 0;\n-return loop(o17);\n+var o20 = 0;\n+return trampoline(loop(o20));\n }))();\n });\n var vector_dash_fold = (function(func,acc,vec){\n return ((function() {var loop = (function(i,acc){\n-return (function() {if((i < vector_dash_length(vec))) {return loop((i + 1),func(vector_dash_ref(vec,i),acc));\n+return (function() {if((i < vector_dash_length(vec))) {return vector("__tco_call",(function() {return loop((i + 1),func(vector_dash_ref(vec,i),acc));\n+}));\n } else {return acc;\n }})()\n ;\n });\n-var o18 = 0;\n-var o19 = acc;\n-return loop(o18,o19);\n+var o21 = 0;\n+var o22 = acc;\n+return trampoline(loop(o21,o22));\n }))();\n });\n var dict = (function() {\n var args = vector_dash__gt_list(Array.prototype.slice.call(arguments));\n var res = {};\n ((function() {var loop = (function(lst){\n-return (function() {if(not(null_p_(lst))) {return ((function() {var o21 = (function(key,val){\n+return (function() {if(not(null_p_(lst))) {return ((function() {var o24 = (function(key,val){\n dict_dash_put_excl_(res,key,val);\n-return loop(cddr(lst));\n+return vector("__tco_call",(function() {return loop(cddr(lst));\n+}));\n });\n-var o22 = car(lst);\n-var o23 = cadr(lst);\n-return o21(o22,o23);\n+var o25 = car(lst);\n+var o26 = cadr(lst);\n+return o24(o25,o26);\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o20 = args;\n-return loop(o20);\n+var o23 = args;\n+return trampoline(loop(o23));\n }))();\n return res;\n });\n var dict_dash_put_excl_ = (function(dct,k,v){\n-return dct[k.str] = v});\n+return dct[k.substring(1)] = v});\n var dict_dash_ref = (function(dct,k){\n-return dct[k.str]});\n+return dct[k.substring(1)]});\n var dict_dash_map = (function(func,dct){\n var res = dict();\n ((function() {var loop = (function(lst){\n-return (function() {if(not(null_p_(lst))) {return ((function() {var o25 = (function(k){\n+return (function() {if(not(null_p_(lst))) {return ((function() {var o28 = (function(k){\n dict_dash_put_excl_(res,k,func(dict_dash_ref(dct,k)));\n-return loop(cdr(lst));\n+return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n });\n-var o26 = car(lst);\n-return o25(o26);\n+var o29 = car(lst);\n+return o28(o29);\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o24 = keys(dct);\n-return loop(o24);\n+var o27 = keys(dct);\n+return trampoline(loop(o27));\n }))();\n return res;\n });\n+var dict_dash_merge = (function(dct1,dct2){\n+return ((function() {var o30 = (function(res){\n+map((function(k){\n+return dict_dash_put_excl_(res,k,dict_dash_ref(dct1,k));\n+}),keys(dct1));\n+map((function(k){\n+return dict_dash_put_excl_(res,k,dict_dash_ref(dct2,k));\n+}),keys(dct2));\n+return res;\n+});\n+var o31 = dict();\n+return o30(o31);\n+}))();\n+});\n var dict_dash__gt_vector = (function(dct){\n var res = vector();\n ((function() {var loop = (function(lst){\n return (function() {if(not(null_p_(lst))) {return ((function() {vector_dash_push_excl_(res,car(lst));\n vector_dash_push_excl_(res,dict_dash_ref(dct,car(lst)));\n-return loop(cdr(lst));\n+return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o27 = keys(dct);\n-return loop(o27);\n+var o32 = keys(dct);\n+return trampoline(loop(o32));\n }))();\n return res;\n });\n@@ -377,13 +409,13 @@ var dict_dash__gt_list = (function(dct){\n return vector_dash__gt_list(dict_dash__gt_vector(dct));\n });\n var keys = (function(dct){\n-return ((function() {var o28 = (function(res){\n+return ((function() {var o33 = (function(res){\n for(var k in dct) {\n        res = cons(string_dash__gt_symbol(k), res);\n     }return res;\n });\n-var o29 = _emptylst;\n-return o28(o29);\n+var o34 = _emptylst;\n+return o33(o34);\n }))();\n });\n var vals = (function(dct){\n@@ -395,15 +427,16 @@ var zip = (function(keys,vals){\n var res = dict();\n ((function() {var loop = (function(ks,vs){\n return (function() {if(not(null_p_(ks))) {return ((function() {dict_dash_put_excl_(res,car(ks),car(vs));\n-return loop(cdr(ks),cdr(vs));\n+return vector("__tco_call",(function() {return loop(cdr(ks),cdr(vs));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o30 = keys;\n-var o31 = vals;\n-return loop(o30,o31);\n+var o35 = keys;\n+var o36 = vals;\n+return trampoline(loop(o35,o36));\n }))();\n return res;\n });\n@@ -411,9 +444,7 @@ var not = (function(obj){\n return (typeof obj !== \'number\' && !obj);\n });\n var _eq__eq_ = (function(obj1,obj2){\n-return (function() {if((symbol_p_(obj1) && symbol_p_(obj2))) {return obj1.str === obj2.str} else {return obj1 === obj2}})()\n-;\n-});\n+return obj1 === obj2});\n var _eq_ = (function(obj1,obj2){\n return (function() {if((list_p_(obj1) && list_p_(obj2))) {return ((function() {return ((function() {var loop = (function(lst1,lst2){\n var n1 = null_p_(lst1);\n@@ -432,15 +463,15 @@ return (function() {if((n1 && n2)) {return ((function() {return true;\n }})()\n ;\n });\n-var o32 = obj1;\n-var o33 = obj2;\n-return loop(o32,o33);\n+var o37 = obj1;\n+var o38 = obj2;\n+return loop(o37,o38);\n }))();\n }))();\n } else {return (function() {if((vector_p_(obj1) && vector_p_(obj2))) {return ((function() {return ((function() {var loop = (function(i){\n-return (function() {if(((i < obj1.length) && (i < obj2.length))) {return ((function() {return true;\n+return (function() {if(((i < obj1["length"]) && (i < obj2["length"]))) {return ((function() {return true;\n }))();\n-} else {return (function() {if(((i < obj1.length) || (i < obj2.length))) {return ((function() {return false;\n+} else {return (function() {if(((i < obj1["length"]) || (i < obj2["length"]))) {return ((function() {return false;\n }))();\n } else {return ((function() {return (function() {if(equal_p_(vector_dash_ref(obj1,i),vector_dash_ref(obj2,i))) {return loop((i + 1));\n } else {return false;\n@@ -452,27 +483,28 @@ return (function() {if(((i < obj1.length) && (i < obj2.length))) {return ((funct\n }})()\n ;\n });\n-var o34 = 0;\n-return loop(o34);\n+var o39 = 0;\n+return loop(o39);\n }))();\n }))();\n-} else {return (function() {if((dict_p_(obj1) && dict_p_(obj2))) {return ((function() {return ((function() {var o35 = (function(keys1,keys2){\n+} else {return (function() {if((dict_p_(obj1) && dict_p_(obj2))) {return ((function() {return ((function() {var o40 = (function(keys1,keys2){\n return (eq_p_(length(keys1),length(keys2)) && ((function() {var loop = (function(lst){\n return (function() {if(null_p_(lst)) {return true;\n-} else {return (function() {if(equal_p_(dict_dash_ref(obj1,car(lst)),dict_dash_ref(obj2,car(lst)))) {return loop(cdr(lst));\n+} else {return (function() {if(equal_p_(dict_dash_ref(obj1,car(lst)),dict_dash_ref(obj2,car(lst)))) {return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n } else {return false;\n }})()\n ;\n }})()\n ;\n });\n-var o38 = keys1;\n-return loop(o38);\n+var o43 = keys1;\n+return trampoline(loop(o43));\n }))());\n });\n-var o36 = keys(obj1);\n-var o37 = keys(obj2);\n-return o35(o36,o37);\n+var o41 = keys(obj1);\n+var o42 = keys(obj2);\n+return o40(o41,o42);\n }))();\n }))();\n } else {return ((function() {return eq_p_(obj1,obj2);\n@@ -486,26 +518,42 @@ return o35(o36,o37);\n });\n var eq_p_ = _eq__eq_;\n var equal_p_ = _eq_;\n-var display = (function(msg){\n-return console.log(msg);\n+var print = (function(msg){\n+return util["print"](msg);\n+});\n+var println = (function(msg){\n+return util["puts"](msg);\n });\n var pp = (function(obj){\n-return display(str(inspect(obj),"\\n"));\n+return println(inspect(obj));\n });\n-var inspect = (function(obj){\n-var rest = vector_dash__gt_list(Array.prototype.slice.call(arguments, 1));\n-var space = (function(obj){\n-return (function() {if((literal_p_(obj) || symbol_p_(obj))) {return ((function() {return vector_dash_length(inspect(obj));\n+var _per_inspect_dash_non_dash_sequence = (function(obj){\n+return (function() {if(number_p_(obj)) {return ((function() {return ("" + obj);\n }))();\n-} else {return (function() {if(list_p_(obj)) {return ((function() {return (length(obj) + 1 + fold((function(el,acc){\n-return (acc + space(el));\n-}),0,obj));\n+} else {return (function() {if(string_p_(obj)) {return ((function() {obj = obj["replace"](RegExp("\\\\\\\\","g"),"\\\\\\\\");\n+obj = obj["replace"](RegExp("\\n","g"),"\\\\n");\n+obj = obj["replace"](RegExp("\\r","g"),"\\\\r");\n+obj = obj["replace"](RegExp("\\t","g"),"\\\\t");\n+obj = obj["replace"](RegExp("\\"","g"),"\\\\\\"");\n+return ("\\"" + obj + "\\"");\n }))();\n-} else {return (function() {if(dict_p_(obj)) {return ((function() {return space(dict_dash__gt_list(obj));\n+} else {return (function() {if(symbol_p_(obj)) {return ((function() {return symbol_dash__gt_string(obj);\n+}))();\n+} else {return (function() {if(boolean_p_(obj)) {return ((function() {return (function() {if(obj) {return "#t";\n+} else {return "#f";\n+}})()\n+;\n }))();\n-} else {return (function() {if(vector_p_(obj)) {return ((function() {return space(vector_dash__gt_list(obj));\n+} else {return (function() {if(null_p_(obj)) {return ((function() {return "()";\n }))();\n-} else {return false;\n+} else {return (function() {if(function_p_(obj)) {return ((function() {return "<function>";\n+}))();\n+} else {return ((function() {throw("%inspect-non-sequence: unexpected type");\n+}))();\n+}})()\n+;\n+}})()\n+;\n }})()\n ;\n }})()\n@@ -515,78 +563,108 @@ return (acc + space(el));\n }})()\n ;\n });\n-return ((function() {var o39 = (function(i){\n+var _per_recur_dash_protect = (function(obj,arg,func,halt){\n+var rest = vector_dash__gt_list(Array.prototype.slice.call(arguments, 4));\n+return ((function() {var o44 = (function(parents){\n+return (function() {if(list_dash_find(parents,obj)) {return halt;\n+} else {return func(obj,arg,(function(el,arg){\n+return _per_recur_dash_protect(el,arg,func,halt,cons(obj,parents));\n+}));\n+}})()\n+;\n+});\n+var o45 = (function() {if(null_p_(rest)) {return _emptylst;\n+} else {return car(rest);\n+}})()\n+;\n+return o44(o45);\n+}))();\n+});\n+var _per_space = (function(obj){\n+return _per_recur_dash_protect(obj,false,(function(obj,arg,recur){\n+return (function() {if(list_p_(obj)) {return ((function() {return (length(obj) + 1 + fold((function(el,acc){\n+return (acc + recur(el,false));\n+}),0,obj));\n+}))();\n+} else {return (function() {if(dict_p_(obj)) {return ((function() {return recur(dict_dash__gt_list(obj),false);\n+}))();\n+} else {return (function() {if(vector_p_(obj)) {return ((function() {return recur(vector_dash__gt_list(obj),false);\n+}))();\n+} else {return ((function() {return vector_dash_length(_per_inspect_dash_non_dash_sequence(obj));\n+}))();\n+}})()\n+;\n+}})()\n+;\n+}})()\n+;\n+}),vector_dash_length("<circular>"));\n+});\n+var inspect = (function(obj){\n+var rest = vector_dash__gt_list(Array.prototype.slice.call(arguments, 1));\n+return ((function() {var o46 = (function(no_dash_newlines){\n+return _per_recur_dash_protect(obj,1,(function(obj,i,recur){\n var buffer = "";\n var get_dash_buffer = (function() {return buffer;\n });\n-var disp = (function(str){\n-buffer = (buffer + str);\n+var disp = (function(s){\n+buffer = (buffer + s);\n });\n var pad = (function(n){\n return vector_dash_for_dash_each((function(_){\n return disp(" ");\n }),make_dash_vector(n));\n });\n-return (function() {if(number_p_(obj)) {return ((function() {return ("" + obj);\n-}))();\n-} else {return (function() {if(string_p_(obj)) {return ((function() {return obj;\n-}))();\n-} else {return (function() {if(symbol_p_(obj)) {return ((function() {return symbol_dash__gt_string(obj);\n-}))();\n-} else {return (function() {if(boolean_p_(obj)) {return ((function() {return (function() {if(obj) {return "#t";\n-} else {return "#f";\n-}})()\n-;\n-}))();\n-} else {return (function() {if(null_p_(obj)) {return ((function() {return "()";\n-}))();\n-} else {return (function() {if(list_p_(obj)) {return ((function() {return ((function() {var o41 = (function(node,childr,sp){\n+return (function() {if(list_p_(obj)) {return ((function() {return ((function() {var o48 = (function(sp,first){\n disp("(");\n-disp(inspect(node,(i + 1)));\n-for_dash_each((function(item){\n-(function() {if(sp) {return ((function() {disp("\\n");\n+for_dash_each((function(el){\n+(function() {if(not(first)) {return (function() {if((sp && not(no_dash_newlines))) {return ((function() {disp("\\n");\n return pad(i);\n }))();\n } else {return disp(" ");\n }})()\n ;\n-return disp(inspect(item,(i + 1)));\n-}),childr);\n+} else {return false;\n+}})()\n+;\n+disp(recur(el,(i + 1)));\n+first = false;\n+}),obj);\n disp(")");\n return get_dash_buffer();\n });\n-var o42 = car(obj);\n-var o43 = cdr(obj);\n-var o44 = (space(obj) > 30);\n-return o41(o42,o43,o44);\n+var o49 = (_per_space(obj) > 30);\n+var o50 = true;\n+return o48(o49,o50);\n }))();\n }))();\n-} else {return (function() {if(vector_p_(obj)) {return ((function() {return ((function() {var o45 = (function(first,rest,sp){\n+} else {return (function() {if(vector_p_(obj)) {return ((function() {return ((function() {var o51 = (function(sp,first){\n disp("[");\n-disp(inspect(first,(i + 1)));\n-vector_dash_for_dash_each((function(item){\n-(function() {if(sp) {return ((function() {disp("\\n");\n+vector_dash_for_dash_each((function(el){\n+(function() {if(not(first)) {return (function() {if((sp && not(no_dash_newlines))) {return ((function() {disp("\\n");\n return pad(i);\n }))();\n } else {return disp(" ");\n }})()\n ;\n-return disp(inspect(item,(i + 1)));\n-}),rest);\n+} else {return false;\n+}})()\n+;\n+disp(recur(el,(i + 1)));\n+first = false;\n+}),obj);\n disp("]");\n return get_dash_buffer();\n });\n-var o46 = vector_dash_ref(obj,0);\n-var o47 = vector_dash_slice(obj,1);\n-var o48 = (space(obj) > 30);\n-return o45(o46,o47,o48);\n+var o52 = (_per_space(obj) > 30);\n+var o53 = true;\n+return o51(o52,o53);\n }))();\n }))();\n-} else {return (function() {if(dict_p_(obj)) {return ((function() {disp("{");\n-((function() {var o49 = (function(lst,sp){\n-return ((function() {var loop = (function(lst,first){\n-return (function() {if(not(null_p_(lst))) {return ((function() {var o54 = (function(key,val){\n-(function() {if(not(first)) {return (function() {if(sp) {return ((function() {disp("\\n");\n+} else {return (function() {if(dict_p_(obj)) {return ((function() {return ((function() {var o54 = (function(sp,first){\n+disp("{");\n+for_dash_each((function(k){\n+(function() {if(not(first)) {return (function() {if((sp && not(no_dash_newlines))) {return ((function() {disp("\\n");\n return pad(i);\n }))();\n } else {return disp(" ");\n@@ -596,59 +674,45 @@ return pad(i);\n }})()\n ;\n disp(":");\n-disp(inspect(key,i));\n+disp(recur(k,i));\n disp(" ");\n-disp(inspect(val,(i + 1 + vector_dash_length(symbol_dash__gt_string(key)))));\n-return loop(cddr(lst),false);\n+disp(recur(dict_dash_ref(obj,k),(i + 3 + vector_dash_length(symbol_dash__gt_string(k)))));\n+first = false;\n+}),keys(obj));\n+disp("}");\n+return get_dash_buffer();\n });\n-var o55 = car(lst);\n-var o56 = cadr(lst);\n+var o55 = (_per_space(obj) > 30);\n+var o56 = true;\n return o54(o55,o56);\n }))();\n-} else {return false;\n-}})()\n-;\n-});\n-var o52 = lst;\n-var o53 = true;\n-return loop(o52,o53);\n-}))();\n-});\n-var o50 = dict_dash__gt_list(obj);\n-var o51 = (space(obj) > 30);\n-return o49(o50,o51);\n }))();\n-disp("}");\n-return get_dash_buffer();\n+} else {return ((function() {return _per_inspect_dash_non_dash_sequence(obj);\n }))();\n-} else {return false;\n-}})()\n-;\n-}})()\n-;\n-}})()\n-;\n-}})()\n-;\n-}})()\n-;\n }})()\n ;\n }})()\n ;\n }})()\n ;\n+}),"<circular>");\n });\n-var o40 = (function() {if(null_p_(rest)) {return 1;\n+var o47 = (function() {if(null_p_(rest)) {return false;\n } else {return car(rest);\n }})()\n ;\n-return o39(o40);\n+return o46(o47);\n }))();\n });\n var apply = (function(func,args){\n return func.apply(null,list_dash__gt_vector(args));\n });\n+var trampoline_dash_result_p_ = (function(value){\n+return (vector_p_(value) && _eq_(vector_dash_ref(value,0),"__tco_call"));\n+});\n+var trampoline = (function(value){\n+while(trampoline_dash_result_p_(value)) { value = value[1](); }return value;\n+});\n var _gensym = 0;\n var gensym = (function() {_gensym = (_gensym + 1);\n return string_dash__gt_symbol(("o" + _gensym));\n@@ -695,7 +759,7 @@ return (state + (function() {if(equal_p_(str,"\\\\n")) {return ((function() {retur\n }))();\n } else {return (function() {if(equal_p_(str,"\\\\r")) {return ((function() {return "\\r";\n }))();\n-} else {return ((function() {return str.charAt(1);\n+} else {return ((function() {return str["charAt"](1);\n }))();\n }})()\n ;\n@@ -716,7 +780,7 @@ var raw_term = capture(repeated(any(not_dash_char(("{}()[]\'" + space_dash_char))\n return string_dash__gt_symbol(buf);\n }));\n var raw_keyword = capture(all(char(":"),raw_term),(function(buf,node){\n-return list(string_dash__gt_symbol("quote"),node);\n+return list("\\uFDD1quote",node);\n }));\n var term = any(raw_keyword,raw_term);\n var elements = (function(lst){\n@@ -725,13 +789,13 @@ var capt = (function(buf,node){\n return ((function() {var o6 = (function(special){\n return list(string_dash__gt_symbol(special),node);\n });\n-var o7 = (function() {if(equal_p_(buf.substring(0,2),",@")) {return ((function() {return "unquote-splicing";\n+var o7 = (function() {if(equal_p_(buf["substring"](0,2),",@")) {return ((function() {return "unquote-splicing";\n }))();\n-} else {return (function() {if(equal_p_(buf.charAt(0),",")) {return ((function() {return "unquote";\n+} else {return (function() {if(equal_p_(buf["charAt"](0),",")) {return ((function() {return "unquote";\n }))();\n-} else {return (function() {if(equal_p_(buf.charAt(0),"\'")) {return ((function() {return "quote";\n+} else {return (function() {if(equal_p_(buf["charAt"](0),"\'")) {return ((function() {return "quote";\n }))();\n-} else {return (function() {if(equal_p_(buf.charAt(0),"`")) {return ((function() {return "quasiquote";\n+} else {return (function() {if(equal_p_(buf["charAt"](0),"`")) {return ((function() {return "quasiquote";\n }))();\n } else {return false;\n }})()\n@@ -767,9 +831,9 @@ return vector();\n return vector_dash_concat(parent,vector(child));\n }))))),any(after(char("}"),(function(state,_){\n return ((function() {var o10 = (function(i){\n-return dict.apply(null,vector_dash_map((function(el){\n+return dict["apply"](null,vector_dash_map((function(el){\n i = (i + 1);\n-return (function() {if(eq_p_(((i - 1) % 2),0)) {return (function() {if((list_p_(el) && eq_p_(car(el),string_dash__gt_symbol("quote")))) {return cadr(el);\n+return (function() {if(eq_p_(((i - 1) % 2),0)) {return (function() {if((list_p_(el) && eq_p_(car(el),"\\uFDD1quote"))) {return cadr(el);\n } else {return el;\n }})()\n ;\n@@ -782,22 +846,22 @@ var o11 = 0;\n return o10(o11);\n }))();\n })),after(char(")"),(function(state,_){\n-return vector_dash_to_dash_list(state);\n+return vector_dash__gt_list(state);\n })),char("]")));\n }));\n return after(repeated(any(space,comment,after(elements(any(lst)),(function(root,child){\n-return root.concat(vector(child));\n+return root["concat"](vector(child));\n })))),(function(_,root){\n return ((function() {var o12 = (function(lst){\n return (function() {if(eq_p_(length(lst),1)) {return car(lst);\n-} else {return cons(string_dash__gt_symbol("begin"),lst);\n+} else {return cons("\\uFDD1begin",lst);\n }})()\n ;\n });\n-var o13 = vector_dash_to_dash_list(root);\n+var o13 = vector_dash__gt_list(root);\n return o12(o13);\n }))();\n }));\n });\n-module.exports = grammar;\n+module["exports"] = grammar;\n \ndiff --git a/make.js b/make.js\nindex 2814065..31c1841 100644\n--- a/make.js\n+++ b/make.js\n@@ -36,7 +36,7 @@ var srcfile = args[0];\n var src = fs.readFileSync(srcfile, \'utf-8\');\n var js = js_generator();\n \n-js.write_dash_runtime(opts.no_runtime ? \'no-runtime\' :\n+js[\'write-runtime\'](opts.no_runtime ? \'no-runtime\' :\n                           (opts.with_eval ?\n                            \'js\' :\n                            \'js-noeval\'),\ndiff --git a/parser.js b/parser.js\nindex 4e586b7..6e96879 100644\n--- a/parser.js\n+++ b/parser.js\n@@ -1,17 +1,17 @@\n var util = require("util");var type = (function(obj){\n-return (function() {if(number_p_(obj)) {return ((function() {return string_dash__gt_symbol("number");\n+return (function() {if(number_p_(obj)) {return ((function() {return "\\uFDD1number";\n }))();\n-} else {return (function() {if(boolean_p_(obj)) {return ((function() {return string_dash__gt_symbol("boolean");\n+} else {return (function() {if(boolean_p_(obj)) {return ((function() {return "\\uFDD1boolean";\n }))();\n-} else {return (function() {if(string_p_(obj)) {return ((function() {return string_dash__gt_symbol("string");\n+} else {return (function() {if(string_p_(obj)) {return ((function() {return "\\uFDD1string";\n }))();\n-} else {return (function() {if(null_p_(obj)) {return ((function() {return string_dash__gt_symbol("null");\n+} else {return (function() {if(null_p_(obj)) {return ((function() {return "\\uFDD1null";\n }))();\n-} else {return (function() {if(list_p_(obj)) {return ((function() {return string_dash__gt_symbol("list");\n+} else {return (function() {if(list_p_(obj)) {return ((function() {return "\\uFDD1list";\n }))();\n-} else {return (function() {if(vector_p_(obj)) {return ((function() {return string_dash__gt_symbol("vector");\n+} else {return (function() {if(vector_p_(obj)) {return ((function() {return "\\uFDD1vector";\n }))();\n-} else {return (function() {if(dict_p_(obj)) {return ((function() {return string_dash__gt_symbol("dict");\n+} else {return (function() {if(dict_p_(obj)) {return ((function() {return "\\uFDD1dict";\n }))();\n } else {return false;\n }})()\n@@ -30,28 +30,31 @@ return (function() {if(number_p_(obj)) {return ((function() {return string_dash_\n ;\n });\n var number_p_ = (function(obj){\n-return eq_p_(typeof obj,"number");\n+return _eq__eq_(typeof obj,"number");\n });\n var string_p_ = (function(obj){\n-return eq_p_(typeof obj,"string");\n+return (_eq__eq_(typeof obj,"string") && not(_eq__eq_(obj[0],"\\uFDD1")));\n });\n var symbol_p_ = (function(obj){\n-return (!!obj && obj.str !== undefined && obj.symbol !== undefined);\n+return (_eq__eq_(typeof obj,"string") && _eq__eq_(obj[0],"\\uFDD1"));\n });\n var boolean_p_ = (function(obj){\n return (eq_p_(obj,true) || eq_p_(obj,false));\n });\n var null_p_ = (function(obj){\n-return (!!obj && not(eq_p_(obj.length,undefined)) && eq_p_(obj.length,1) && eq_p_(vector_dash_ref(obj,0),null));\n+return (!!obj && not(eq_p_(obj["length"],undefined)) && eq_p_(obj["length"],1) && eq_p_(vector_dash_ref(obj,0),null));\n });\n var list_p_ = (function(obj){\n-return (!!obj && not(eq_p_(obj.list,undefined)));\n+return (!!obj && not(eq_p_(obj["length"],undefined)) && not(eq_p_(obj["list"],undefined)));\n });\n var vector_p_ = (function(obj){\n-return (not(list_p_(obj)) && not(null_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && not(eq_p_(obj.length,undefined)));\n+return (not(list_p_(obj)) && not(null_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && not(eq_p_(obj["length"],undefined)));\n });\n var dict_p_ = (function(obj){\n-return (not(symbol_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && eq_p_(obj.length,undefined));\n+return (not(symbol_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && eq_p_(obj["length"],undefined));\n+});\n+var function_p_ = (function(obj){\n+return eq_p_(typeof obj,"function");\n });\n var literal_p_ = (function(x){\n return (number_p_(x) || string_p_(x) || boolean_p_(x) || null_p_(x));\n@@ -59,35 +62,25 @@ return (number_p_(x) || string_p_(x) || boolean_p_(x) || null_p_(x));\n var str = (function() {\n var args = vector_dash__gt_list(Array.prototype.slice.call(arguments));\n return fold((function(el,acc){\n-return (acc + inspect(el));\n+return (acc + (function() {if(string_p_(el)) {return el;\n+} else {return inspect(el);\n+}})()\n+);\n }),"",args);\n });\n var string_dash__gt_symbol = (function(str){\n return ((function() {var o1 = (function(s){\n-s = s.replace(RegExp("-","g"),"_dash_");\n-s = s.replace(RegExp("\\\\?","g"),"_p_");\n-s = s.replace(RegExp("\\\\!","g"),"_excl_");\n-s = s.replace(RegExp(">","g"),"_gt_");\n-s = s.replace(RegExp("<","g"),"_lt_");\n-s = s.replace(RegExp("%","g"),"_per_");\n-s = s.replace(RegExp("=","g"),"_eq_");\n-return {str:s, symbol:true}});\n+return ("\\uFDD1" + s);\n+});\n var o2 = str;\n return o1(o2);\n }))();\n });\n var symbol_dash__gt_string = (function(sym){\n return ((function() {var o3 = (function(s){\n-s = s.replace(RegExp("_dash_","g"),"-");\n-s = s.replace(RegExp("_p_","g"),"?");\n-s = s.replace(RegExp("_excl_","g"),"!");\n-s = s.replace(RegExp("_gt_","g"),">");\n-s = s.replace(RegExp("_lt_","g"),"<");\n-s = s.replace(RegExp("_per_","g"),"%");\n-s = s.replace(RegExp("_eq_","g"),"=");\n return s;\n });\n-var o4 = sym.str;\n+var o4 = sym["substring"](1);\n return o3(o4);\n }))();\n });\n@@ -170,17 +163,29 @@ return loop(o9);\n }))();\n });\n var list_dash_find = (function(lst,val){\n+var rst = vector_dash__gt_list(Array.prototype.slice.call(arguments, 2));\n+return ((function() {var o10 = (function(access){\n return ((function() {var loop = (function(lst){\n return (function() {if(null_p_(lst)) {return false;\n-} else {return (function() {if(eq_p_(car(lst),val)) {return lst;\n-} else {return loop(cdr(lst));\n+} else {return (function() {if(_eq__eq_(access(car(lst)),val)) {return lst;\n+} else {return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n }})()\n ;\n }})()\n ;\n });\n-var o10 = lst;\n-return loop(o10);\n+var o12 = lst;\n+return trampoline(loop(o12));\n+}))();\n+});\n+var o11 = (function() {if(null_p_(rst)) {return (function(x){\n+return x;\n+});\n+} else {return car(rst);\n+}})()\n+;\n+return o10(o11);\n }))();\n });\n var map = (function(func,lst){\n@@ -190,13 +195,19 @@ return (function() {if(null_p_(lst)) {return _emptylst;\n ;\n });\n var for_dash_each = (function(func,lst){\n+return ((function() {var loop = (function(lst){\n return (function() {if(not(null_p_(lst))) {return ((function() {func(car(lst));\n-return for_dash_each(func,cdr(lst));\n+return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n+var o13 = lst;\n+return trampoline(loop(o13));\n+}))();\n+});\n var fold = (function(func,acc,lst){\n return (function() {if(null_p_(lst)) {return acc;\n } else {return fold(func,func(car(lst),acc),cdr(lst));\n@@ -215,26 +226,27 @@ return (function() {if((i < vec.length)) {return cons(vector_dash_ref(vec,i),loo\n } else {return _emptylst}})()\n ;\n });\n-var o11 = 0;\n-return loop(o11);\n+var o14 = 0;\n+return loop(o14);\n }))();\n });\n var make_dash_vector = (function(count,val){\n-return ((function() {var o12 = (function(v){\n+return ((function() {var o15 = (function(v){\n return ((function() {var loop = (function(i){\n return (function() {if((i < count)) {return ((function() {vector_dash_put_excl_(v,i,val);\n-return loop((i + 1));\n+return vector("__tco_call",(function() {return loop((i + 1));\n+}));\n }))();\n } else {return v;\n }})()\n ;\n });\n-var o14 = 0;\n-return loop(o14);\n+var o17 = 0;\n+return trampoline(loop(o17));\n }))();\n });\n-var o13 = new Array(count);\n-return o12(o13);\n+var o16 = new Array(count);\n+return o15(o16);\n }))();\n });\n var vector = (function() {return Array.prototype.slice.call(arguments)});\n@@ -251,124 +263,145 @@ return vec.push(obj)});\n var vector_dash_find = (function(vec,val){\n return ((function() {var loop = (function(i){\n return (function() {if((i < vec.length)) {return (function() {if(eq_p_(vector_dash_ref(vec,i),val)) {return i;\n-} else {return loop((i + 1));\n+} else {return vector("__tco_call",(function() {return loop((i + 1));\n+}));\n }})()\n ;\n } else {return false;\n }})()\n ;\n });\n-var o15 = 0;\n-return loop(o15);\n+var o18 = 0;\n+return trampoline(loop(o18));\n }))();\n });\n var vector_dash_length = (function(vec){\n-return vec.length;\n+return vec["length"];\n });\n var list_dash__gt_vector = (function(lst){\n var res = [];\n for_dash_each((function(el){\n-return res.push(el);\n+return res["push"](el);\n }),lst);\n return res;\n });\n var vector_dash_map = (function(func,vec){\n var res = [];\n ((function() {var loop = (function(i){\n-return (function() {if((i < vec.length)) {return ((function() {res.push(func(vector_dash_ref(vec,i)));\n-return loop((i + 1));\n+return (function() {if((i < vec["length"])) {return ((function() {res["push"](func(vector_dash_ref(vec,i)));\n+return vector("__tco_call",(function() {return loop((i + 1));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o16 = 0;\n-return loop(o16);\n+var o19 = 0;\n+return trampoline(loop(o19));\n }))();\n return res;\n });\n var vector_dash_for_dash_each = (function(func,vec){\n return ((function() {var loop = (function(i){\n-return (function() {if((i < vec.length)) {return ((function() {func(vector_dash_ref(vec,i));\n-return loop((i + 1));\n+return (function() {if((i < vec["length"])) {return ((function() {func(vector_dash_ref(vec,i));\n+return vector("__tco_call",(function() {return loop((i + 1));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o17 = 0;\n-return loop(o17);\n+var o20 = 0;\n+return trampoline(loop(o20));\n }))();\n });\n var vector_dash_fold = (function(func,acc,vec){\n return ((function() {var loop = (function(i,acc){\n-return (function() {if((i < vector_dash_length(vec))) {return loop((i + 1),func(vector_dash_ref(vec,i),acc));\n+return (function() {if((i < vector_dash_length(vec))) {return vector("__tco_call",(function() {return loop((i + 1),func(vector_dash_ref(vec,i),acc));\n+}));\n } else {return acc;\n }})()\n ;\n });\n-var o18 = 0;\n-var o19 = acc;\n-return loop(o18,o19);\n+var o21 = 0;\n+var o22 = acc;\n+return trampoline(loop(o21,o22));\n }))();\n });\n var dict = (function() {\n var args = vector_dash__gt_list(Array.prototype.slice.call(arguments));\n var res = {};\n ((function() {var loop = (function(lst){\n-return (function() {if(not(null_p_(lst))) {return ((function() {var o21 = (function(key,val){\n+return (function() {if(not(null_p_(lst))) {return ((function() {var o24 = (function(key,val){\n dict_dash_put_excl_(res,key,val);\n-return loop(cddr(lst));\n+return vector("__tco_call",(function() {return loop(cddr(lst));\n+}));\n });\n-var o22 = car(lst);\n-var o23 = cadr(lst);\n-return o21(o22,o23);\n+var o25 = car(lst);\n+var o26 = cadr(lst);\n+return o24(o25,o26);\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o20 = args;\n-return loop(o20);\n+var o23 = args;\n+return trampoline(loop(o23));\n }))();\n return res;\n });\n var dict_dash_put_excl_ = (function(dct,k,v){\n-return dct[k.str] = v});\n+return dct[k.substring(1)] = v});\n var dict_dash_ref = (function(dct,k){\n-return dct[k.str]});\n+return dct[k.substring(1)]});\n var dict_dash_map = (function(func,dct){\n var res = dict();\n ((function() {var loop = (function(lst){\n-return (function() {if(not(null_p_(lst))) {return ((function() {var o25 = (function(k){\n+return (function() {if(not(null_p_(lst))) {return ((function() {var o28 = (function(k){\n dict_dash_put_excl_(res,k,func(dict_dash_ref(dct,k)));\n-return loop(cdr(lst));\n+return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n });\n-var o26 = car(lst);\n-return o25(o26);\n+var o29 = car(lst);\n+return o28(o29);\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o24 = keys(dct);\n-return loop(o24);\n+var o27 = keys(dct);\n+return trampoline(loop(o27));\n }))();\n return res;\n });\n+var dict_dash_merge = (function(dct1,dct2){\n+return ((function() {var o30 = (function(res){\n+map((function(k){\n+return dict_dash_put_excl_(res,k,dict_dash_ref(dct1,k));\n+}),keys(dct1));\n+map((function(k){\n+return dict_dash_put_excl_(res,k,dict_dash_ref(dct2,k));\n+}),keys(dct2));\n+return res;\n+});\n+var o31 = dict();\n+return o30(o31);\n+}))();\n+});\n var dict_dash__gt_vector = (function(dct){\n var res = vector();\n ((function() {var loop = (function(lst){\n return (function() {if(not(null_p_(lst))) {return ((function() {vector_dash_push_excl_(res,car(lst));\n vector_dash_push_excl_(res,dict_dash_ref(dct,car(lst)));\n-return loop(cdr(lst));\n+return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o27 = keys(dct);\n-return loop(o27);\n+var o32 = keys(dct);\n+return trampoline(loop(o32));\n }))();\n return res;\n });\n@@ -376,13 +409,13 @@ var dict_dash__gt_list = (function(dct){\n return vector_dash__gt_list(dict_dash__gt_vector(dct));\n });\n var keys = (function(dct){\n-return ((function() {var o28 = (function(res){\n+return ((function() {var o33 = (function(res){\n for(var k in dct) {\n        res = cons(string_dash__gt_symbol(k), res);\n     }return res;\n });\n-var o29 = _emptylst;\n-return o28(o29);\n+var o34 = _emptylst;\n+return o33(o34);\n }))();\n });\n var vals = (function(dct){\n@@ -394,15 +427,16 @@ var zip = (function(keys,vals){\n var res = dict();\n ((function() {var loop = (function(ks,vs){\n return (function() {if(not(null_p_(ks))) {return ((function() {dict_dash_put_excl_(res,car(ks),car(vs));\n-return loop(cdr(ks),cdr(vs));\n+return vector("__tco_call",(function() {return loop(cdr(ks),cdr(vs));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o30 = keys;\n-var o31 = vals;\n-return loop(o30,o31);\n+var o35 = keys;\n+var o36 = vals;\n+return trampoline(loop(o35,o36));\n }))();\n return res;\n });\n@@ -410,9 +444,7 @@ var not = (function(obj){\n return (typeof obj !== \'number\' && !obj);\n });\n var _eq__eq_ = (function(obj1,obj2){\n-return (function() {if((symbol_p_(obj1) && symbol_p_(obj2))) {return obj1.str === obj2.str} else {return obj1 === obj2}})()\n-;\n-});\n+return obj1 === obj2});\n var _eq_ = (function(obj1,obj2){\n return (function() {if((list_p_(obj1) && list_p_(obj2))) {return ((function() {return ((function() {var loop = (function(lst1,lst2){\n var n1 = null_p_(lst1);\n@@ -431,15 +463,15 @@ return (function() {if((n1 && n2)) {return ((function() {return true;\n }})()\n ;\n });\n-var o32 = obj1;\n-var o33 = obj2;\n-return loop(o32,o33);\n+var o37 = obj1;\n+var o38 = obj2;\n+return loop(o37,o38);\n }))();\n }))();\n } else {return (function() {if((vector_p_(obj1) && vector_p_(obj2))) {return ((function() {return ((function() {var loop = (function(i){\n-return (function() {if(((i < obj1.length) && (i < obj2.length))) {return ((function() {return true;\n+return (function() {if(((i < obj1["length"]) && (i < obj2["length"]))) {return ((function() {return true;\n }))();\n-} else {return (function() {if(((i < obj1.length) || (i < obj2.length))) {return ((function() {return false;\n+} else {return (function() {if(((i < obj1["length"]) || (i < obj2["length"]))) {return ((function() {return false;\n }))();\n } else {return ((function() {return (function() {if(equal_p_(vector_dash_ref(obj1,i),vector_dash_ref(obj2,i))) {return loop((i + 1));\n } else {return false;\n@@ -451,27 +483,28 @@ return (function() {if(((i < obj1.length) && (i < obj2.length))) {return ((funct\n }})()\n ;\n });\n-var o34 = 0;\n-return loop(o34);\n+var o39 = 0;\n+return loop(o39);\n }))();\n }))();\n-} else {return (function() {if((dict_p_(obj1) && dict_p_(obj2))) {return ((function() {return ((function() {var o35 = (function(keys1,keys2){\n+} else {return (function() {if((dict_p_(obj1) && dict_p_(obj2))) {return ((function() {return ((function() {var o40 = (function(keys1,keys2){\n return (eq_p_(length(keys1),length(keys2)) && ((function() {var loop = (function(lst){\n return (function() {if(null_p_(lst)) {return true;\n-} else {return (function() {if(equal_p_(dict_dash_ref(obj1,car(lst)),dict_dash_ref(obj2,car(lst)))) {return loop(cdr(lst));\n+} else {return (function() {if(equal_p_(dict_dash_ref(obj1,car(lst)),dict_dash_ref(obj2,car(lst)))) {return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n } else {return false;\n }})()\n ;\n }})()\n ;\n });\n-var o38 = keys1;\n-return loop(o38);\n+var o43 = keys1;\n+return trampoline(loop(o43));\n }))());\n });\n-var o36 = keys(obj1);\n-var o37 = keys(obj2);\n-return o35(o36,o37);\n+var o41 = keys(obj1);\n+var o42 = keys(obj2);\n+return o40(o41,o42);\n }))();\n }))();\n } else {return ((function() {return eq_p_(obj1,obj2);\n@@ -485,107 +518,153 @@ return o35(o36,o37);\n });\n var eq_p_ = _eq__eq_;\n var equal_p_ = _eq_;\n-var display = (function(msg){\n-return console.log(msg);\n+var print = (function(msg){\n+return util["print"](msg);\n+});\n+var println = (function(msg){\n+return util["puts"](msg);\n });\n var pp = (function(obj){\n-return display(str(inspect(obj),"\\n"));\n+return println(inspect(obj));\n });\n-var inspect = (function(obj){\n-var rest = vector_dash__gt_list(Array.prototype.slice.call(arguments, 1));\n-var space = (function(obj){\n-return (function() {if((literal_p_(obj) || symbol_p_(obj))) {return ((function() {return vector_dash_length(inspect(obj));\n+var _per_inspect_dash_non_dash_sequence = (function(obj){\n+return (function() {if(number_p_(obj)) {return ((function() {return ("" + obj);\n }))();\n-} else {return (function() {if(list_p_(obj)) {return ((function() {return (length(obj) + 1 + fold((function(el,acc){\n-return (acc + space(el));\n-}),0,obj));\n+} else {return (function() {if(string_p_(obj)) {return ((function() {obj = obj["replace"](RegExp("\\\\\\\\","g"),"\\\\\\\\");\n+obj = obj["replace"](RegExp("\\n","g"),"\\\\n");\n+obj = obj["replace"](RegExp("\\r","g"),"\\\\r");\n+obj = obj["replace"](RegExp("\\t","g"),"\\\\t");\n+obj = obj["replace"](RegExp("\\"","g"),"\\\\\\"");\n+return ("\\"" + obj + "\\"");\n+}))();\n+} else {return (function() {if(symbol_p_(obj)) {return ((function() {return symbol_dash__gt_string(obj);\n+}))();\n+} else {return (function() {if(boolean_p_(obj)) {return ((function() {return (function() {if(obj) {return "#t";\n+} else {return "#f";\n+}})()\n+;\n }))();\n-} else {return (function() {if(dict_p_(obj)) {return ((function() {return space(dict_dash__gt_list(obj));\n+} else {return (function() {if(null_p_(obj)) {return ((function() {return "()";\n }))();\n-} else {return (function() {if(vector_p_(obj)) {return ((function() {return space(vector_dash__gt_list(obj));\n+} else {return (function() {if(function_p_(obj)) {return ((function() {return "<function>";\n }))();\n-} else {return false;\n+} else {return ((function() {throw("%inspect-non-sequence: unexpected type");\n+}))();\n+}})()\n+;\n+}})()\n+;\n+}})()\n+;\n+}})()\n+;\n+}})()\n+;\n+}})()\n+;\n+});\n+var _per_recur_dash_protect = (function(obj,arg,func,halt){\n+var rest = vector_dash__gt_list(Array.prototype.slice.call(arguments, 4));\n+return ((function() {var o44 = (function(parents){\n+return (function() {if(list_dash_find(parents,obj)) {return halt;\n+} else {return func(obj,arg,(function(el,arg){\n+return _per_recur_dash_protect(el,arg,func,halt,cons(obj,parents));\n+}));\n+}})()\n+;\n+});\n+var o45 = (function() {if(null_p_(rest)) {return _emptylst;\n+} else {return car(rest);\n }})()\n ;\n+return o44(o45);\n+}))();\n+});\n+var _per_space = (function(obj){\n+return _per_recur_dash_protect(obj,false,(function(obj,arg,recur){\n+return (function() {if(list_p_(obj)) {return ((function() {return (length(obj) + 1 + fold((function(el,acc){\n+return (acc + recur(el,false));\n+}),0,obj));\n+}))();\n+} else {return (function() {if(dict_p_(obj)) {return ((function() {return recur(dict_dash__gt_list(obj),false);\n+}))();\n+} else {return (function() {if(vector_p_(obj)) {return ((function() {return recur(vector_dash__gt_list(obj),false);\n+}))();\n+} else {return ((function() {return vector_dash_length(_per_inspect_dash_non_dash_sequence(obj));\n+}))();\n }})()\n ;\n }})()\n ;\n }})()\n ;\n+}),vector_dash_length("<circular>"));\n });\n-return ((function() {var o39 = (function(i){\n+var inspect = (function(obj){\n+var rest = vector_dash__gt_list(Array.prototype.slice.call(arguments, 1));\n+return ((function() {var o46 = (function(no_dash_newlines){\n+return _per_recur_dash_protect(obj,1,(function(obj,i,recur){\n var buffer = "";\n var get_dash_buffer = (function() {return buffer;\n });\n-var disp = (function(str){\n-buffer = (buffer + str);\n+var disp = (function(s){\n+buffer = (buffer + s);\n });\n var pad = (function(n){\n return vector_dash_for_dash_each((function(_){\n return disp(" ");\n }),make_dash_vector(n));\n });\n-return (function() {if(number_p_(obj)) {return ((function() {return ("" + obj);\n-}))();\n-} else {return (function() {if(string_p_(obj)) {return ((function() {return obj;\n-}))();\n-} else {return (function() {if(symbol_p_(obj)) {return ((function() {return symbol_dash__gt_string(obj);\n-}))();\n-} else {return (function() {if(boolean_p_(obj)) {return ((function() {return (function() {if(obj) {return "#t";\n-} else {return "#f";\n-}})()\n-;\n-}))();\n-} else {return (function() {if(null_p_(obj)) {return ((function() {return "()";\n-}))();\n-} else {return (function() {if(list_p_(obj)) {return ((function() {return ((function() {var o41 = (function(node,childr,sp){\n+return (function() {if(list_p_(obj)) {return ((function() {return ((function() {var o48 = (function(sp,first){\n disp("(");\n-disp(inspect(node,(i + 1)));\n-for_dash_each((function(item){\n-(function() {if(sp) {return ((function() {disp("\\n");\n+for_dash_each((function(el){\n+(function() {if(not(first)) {return (function() {if((sp && not(no_dash_newlines))) {return ((function() {disp("\\n");\n return pad(i);\n }))();\n } else {return disp(" ");\n }})()\n ;\n-return disp(inspect(item,(i + 1)));\n-}),childr);\n+} else {return false;\n+}})()\n+;\n+disp(recur(el,(i + 1)));\n+first = false;\n+}),obj);\n disp(")");\n return get_dash_buffer();\n });\n-var o42 = car(obj);\n-var o43 = cdr(obj);\n-var o44 = (space(obj) > 30);\n-return o41(o42,o43,o44);\n+var o49 = (_per_space(obj) > 30);\n+var o50 = true;\n+return o48(o49,o50);\n }))();\n }))();\n-} else {return (function() {if(vector_p_(obj)) {return ((function() {return ((function() {var o45 = (function(first,rest,sp){\n+} else {return (function() {if(vector_p_(obj)) {return ((function() {return ((function() {var o51 = (function(sp,first){\n disp("[");\n-disp(inspect(first,(i + 1)));\n-vector_dash_for_dash_each((function(item){\n-(function() {if(sp) {return ((function() {disp("\\n");\n+vector_dash_for_dash_each((function(el){\n+(function() {if(not(first)) {return (function() {if((sp && not(no_dash_newlines))) {return ((function() {disp("\\n");\n return pad(i);\n }))();\n } else {return disp(" ");\n }})()\n ;\n-return disp(inspect(item,(i + 1)));\n-}),rest);\n+} else {return false;\n+}})()\n+;\n+disp(recur(el,(i + 1)));\n+first = false;\n+}),obj);\n disp("]");\n return get_dash_buffer();\n });\n-var o46 = vector_dash_ref(obj,0);\n-var o47 = vector_dash_slice(obj,1);\n-var o48 = (space(obj) > 30);\n-return o45(o46,o47,o48);\n+var o52 = (_per_space(obj) > 30);\n+var o53 = true;\n+return o51(o52,o53);\n }))();\n }))();\n-} else {return (function() {if(dict_p_(obj)) {return ((function() {disp("{");\n-((function() {var o49 = (function(lst,sp){\n-return ((function() {var loop = (function(lst,first){\n-return (function() {if(not(null_p_(lst))) {return ((function() {var o54 = (function(key,val){\n-(function() {if(not(first)) {return (function() {if(sp) {return ((function() {disp("\\n");\n+} else {return (function() {if(dict_p_(obj)) {return ((function() {return ((function() {var o54 = (function(sp,first){\n+disp("{");\n+for_dash_each((function(k){\n+(function() {if(not(first)) {return (function() {if((sp && not(no_dash_newlines))) {return ((function() {disp("\\n");\n return pad(i);\n }))();\n } else {return disp(" ");\n@@ -595,59 +674,45 @@ return pad(i);\n }})()\n ;\n disp(":");\n-disp(inspect(key,i));\n+disp(recur(k,i));\n disp(" ");\n-disp(inspect(val,(i + 1 + vector_dash_length(symbol_dash__gt_string(key)))));\n-return loop(cddr(lst),false);\n+disp(recur(dict_dash_ref(obj,k),(i + 3 + vector_dash_length(symbol_dash__gt_string(k)))));\n+first = false;\n+}),keys(obj));\n+disp("}");\n+return get_dash_buffer();\n });\n-var o55 = car(lst);\n-var o56 = cadr(lst);\n+var o55 = (_per_space(obj) > 30);\n+var o56 = true;\n return o54(o55,o56);\n }))();\n-} else {return false;\n-}})()\n-;\n-});\n-var o52 = lst;\n-var o53 = true;\n-return loop(o52,o53);\n-}))();\n-});\n-var o50 = dict_dash__gt_list(obj);\n-var o51 = (space(obj) > 30);\n-return o49(o50,o51);\n }))();\n-disp("}");\n-return get_dash_buffer();\n+} else {return ((function() {return _per_inspect_dash_non_dash_sequence(obj);\n }))();\n-} else {return false;\n-}})()\n-;\n-}})()\n-;\n-}})()\n-;\n-}})()\n-;\n-}})()\n-;\n }})()\n ;\n }})()\n ;\n }})()\n ;\n+}),"<circular>");\n });\n-var o40 = (function() {if(null_p_(rest)) {return 1;\n+var o47 = (function() {if(null_p_(rest)) {return false;\n } else {return car(rest);\n }})()\n ;\n-return o39(o40);\n+return o46(o47);\n }))();\n });\n var apply = (function(func,args){\n return func.apply(null,list_dash__gt_vector(args));\n });\n+var trampoline_dash_result_p_ = (function(value){\n+return (vector_p_(value) && _eq_(vector_dash_ref(value,0),"__tco_call"));\n+});\n+var trampoline = (function(value){\n+while(trampoline_dash_result_p_(value)) { value = value[1](); }return value;\n+});\n var _gensym = 0;\n var gensym = (function() {_gensym = (_gensym + 1);\n return string_dash__gt_symbol(("o" + _gensym));\n@@ -662,7 +727,7 @@ return f(f);\n return gen((function() {\n var args = vector_dash__gt_list(Array.prototype.slice.call(arguments));\n return ((function() {var o1 = (function(ff){\n-return ff.apply(null,list_dash__gt_vector(args));\n+return ff["apply"](null,list_dash__gt_vector(args));\n });\n var o2 = f(f);\n return o1(o2);\n@@ -686,7 +751,7 @@ return vector("",state);\n });\n var char = (function(alphabet){\n return (function(text,state){\n-return (function() {if(((text.length > 0) && (alphabet.indexOf(text.charAt(0)) > -1))) {return vector(text.substr(1),state);\n+return (function() {if(((text["length"] > 0) && (alphabet["indexOf"](text["charAt"](0)) > -1))) {return vector(text["substr"](1),state);\n } else {return null;\n }})()\n ;\n@@ -694,7 +759,7 @@ return (function() {if(((text.length > 0) && (alphabet.indexOf(text.charAt(0)) >\n });\n var not_dash_char = (function(alphabet){\n return (function(text,state){\n-return (function() {if(((text.length > 0) && eq_p_(alphabet.indexOf(text.charAt(0)),-1))) {return vector(text.substr(1),state);\n+return (function() {if(((text["length"] > 0) && eq_p_(alphabet["indexOf"](text["charAt"](0)),-1))) {return vector(text["substr"](1),state);\n } else {return null;\n }})()\n ;\n@@ -744,7 +809,7 @@ var capture = (function(func,hook){\n return (function(text,state){\n return ((function() {var o7 = (function(r){\n return (function() {if(r) {return ((function() {var o9 = (function(t,s){\n-return vector(t,hook(text.substr(0,(text.length - t.length)),s));\n+return vector(t,hook(text["substr"](0,(text["length"] - t["length"])),s));\n });\n var o10 = vector_dash_ref(r,0);\n var o11 = vector_dash_ref(r,1);\n@@ -790,5 +855,5 @@ var o15 = parser(grammar)(text,state);\n return o14(o15);\n }))();\n });\n-module.exports = parse;\n+module["exports"] = parse;\n \ndiff --git a/runtime.js b/runtime.js\nindex 1a6166c..0987350 100644\n--- a/runtime.js\n+++ b/runtime.js\n@@ -1,17 +1,17 @@\n var util = require("util");var type = (function(obj){\n-return (function() {if(number_p_(obj)) {return ((function() {return string_dash__gt_symbol("number");\n+return (function() {if(number_p_(obj)) {return ((function() {return "\\uFDD1number";\n }))();\n-} else {return (function() {if(boolean_p_(obj)) {return ((function() {return string_dash__gt_symbol("boolean");\n+} else {return (function() {if(boolean_p_(obj)) {return ((function() {return "\\uFDD1boolean";\n }))();\n-} else {return (function() {if(string_p_(obj)) {return ((function() {return string_dash__gt_symbol("string");\n+} else {return (function() {if(string_p_(obj)) {return ((function() {return "\\uFDD1string";\n }))();\n-} else {return (function() {if(null_p_(obj)) {return ((function() {return string_dash__gt_symbol("null");\n+} else {return (function() {if(null_p_(obj)) {return ((function() {return "\\uFDD1null";\n }))();\n-} else {return (function() {if(list_p_(obj)) {return ((function() {return string_dash__gt_symbol("list");\n+} else {return (function() {if(list_p_(obj)) {return ((function() {return "\\uFDD1list";\n }))();\n-} else {return (function() {if(vector_p_(obj)) {return ((function() {return string_dash__gt_symbol("vector");\n+} else {return (function() {if(vector_p_(obj)) {return ((function() {return "\\uFDD1vector";\n }))();\n-} else {return (function() {if(dict_p_(obj)) {return ((function() {return string_dash__gt_symbol("dict");\n+} else {return (function() {if(dict_p_(obj)) {return ((function() {return "\\uFDD1dict";\n }))();\n } else {return false;\n }})()\n@@ -30,28 +30,28 @@ return (function() {if(number_p_(obj)) {return ((function() {return string_dash_\n ;\n });\n var number_p_ = (function(obj){\n-return eq_p_(typeof obj,"number");\n+return _eq__eq_(typeof obj,"number");\n });\n var string_p_ = (function(obj){\n-return eq_p_(typeof obj,"string");\n+return (_eq__eq_(typeof obj,"string") && not(_eq__eq_(obj[0],"\\uFDD1")));\n });\n var symbol_p_ = (function(obj){\n-return (!!obj && obj.str !== undefined && obj.symbol !== undefined);\n+return (_eq__eq_(typeof obj,"string") && _eq__eq_(obj[0],"\\uFDD1"));\n });\n var boolean_p_ = (function(obj){\n return (eq_p_(obj,true) || eq_p_(obj,false));\n });\n var null_p_ = (function(obj){\n-return (!!obj && not(eq_p_(obj.length,undefined)) && eq_p_(obj.length,1) && eq_p_(vector_dash_ref(obj,0),null));\n+return (!!obj && not(eq_p_(obj["length"],undefined)) && eq_p_(obj["length"],1) && eq_p_(vector_dash_ref(obj,0),null));\n });\n var list_p_ = (function(obj){\n-return (!!obj && not(eq_p_(obj.length,undefined)) && not(eq_p_(obj.list,undefined)));\n+return (!!obj && not(eq_p_(obj["length"],undefined)) && not(eq_p_(obj["list"],undefined)));\n });\n var vector_p_ = (function(obj){\n-return (not(list_p_(obj)) && not(null_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && not(eq_p_(obj.length,undefined)));\n+return (not(list_p_(obj)) && not(null_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && not(eq_p_(obj["length"],undefined)));\n });\n var dict_p_ = (function(obj){\n-return (not(symbol_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && eq_p_(obj.length,undefined));\n+return (not(symbol_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && eq_p_(obj["length"],undefined));\n });\n var function_p_ = (function(obj){\n return eq_p_(typeof obj,"function");\n@@ -70,30 +70,17 @@ return (acc + (function() {if(string_p_(el)) {return el;\n });\n var string_dash__gt_symbol = (function(str){\n return ((function() {var o1 = (function(s){\n-s = s.replace(RegExp("-","g"),"_dash_");\n-s = s.replace(RegExp("\\\\?","g"),"_p_");\n-s = s.replace(RegExp("\\\\!","g"),"_excl_");\n-s = s.replace(RegExp(">","g"),"_gt_");\n-s = s.replace(RegExp("<","g"),"_lt_");\n-s = s.replace(RegExp("%","g"),"_per_");\n-s = s.replace(RegExp("=","g"),"_eq_");\n-return {str:s, symbol:true}});\n+return ("\\uFDD1" + s);\n+});\n var o2 = str;\n return o1(o2);\n }))();\n });\n var symbol_dash__gt_string = (function(sym){\n return ((function() {var o3 = (function(s){\n-s = s.replace(RegExp("_dash_","g"),"-");\n-s = s.replace(RegExp("_p_","g"),"?");\n-s = s.replace(RegExp("_excl_","g"),"!");\n-s = s.replace(RegExp("_gt_","g"),">");\n-s = s.replace(RegExp("_lt_","g"),"<");\n-s = s.replace(RegExp("_per_","g"),"%");\n-s = s.replace(RegExp("_eq_","g"),"=");\n return s;\n });\n-var o4 = sym.str;\n+var o4 = sym["substring"](1);\n return o3(o4);\n }))();\n });\n@@ -289,19 +276,19 @@ return trampoline(loop(o18));\n }))();\n });\n var vector_dash_length = (function(vec){\n-return vec.length;\n+return vec["length"];\n });\n var list_dash__gt_vector = (function(lst){\n var res = [];\n for_dash_each((function(el){\n-return res.push(el);\n+return res["push"](el);\n }),lst);\n return res;\n });\n var vector_dash_map = (function(func,vec){\n var res = [];\n ((function() {var loop = (function(i){\n-return (function() {if((i < vec.length)) {return ((function() {res.push(func(vector_dash_ref(vec,i)));\n+return (function() {if((i < vec["length"])) {return ((function() {res["push"](func(vector_dash_ref(vec,i)));\n return vector("__tco_call",(function() {return loop((i + 1));\n }));\n }))();\n@@ -316,7 +303,7 @@ return res;\n });\n var vector_dash_for_dash_each = (function(func,vec){\n return ((function() {var loop = (function(i){\n-return (function() {if((i < vec.length)) {return ((function() {func(vector_dash_ref(vec,i));\n+return (function() {if((i < vec["length"])) {return ((function() {func(vector_dash_ref(vec,i));\n return vector("__tco_call",(function() {return loop((i + 1));\n }));\n }))();\n@@ -364,9 +351,9 @@ return trampoline(loop(o23));\n return res;\n });\n var dict_dash_put_excl_ = (function(dct,k,v){\n-return dct[k.str] = v});\n+return dct[k.substring(1)] = v});\n var dict_dash_ref = (function(dct,k){\n-return dct[k.str]});\n+return dct[k.substring(1)]});\n var dict_dash_map = (function(func,dct){\n var res = dict();\n ((function() {var loop = (function(lst){\n@@ -457,9 +444,7 @@ var not = (function(obj){\n return (typeof obj !== \'number\' && !obj);\n });\n var _eq__eq_ = (function(obj1,obj2){\n-return (function() {if((symbol_p_(obj1) && symbol_p_(obj2))) {return obj1.str === obj2.str} else {return obj1 === obj2}})()\n-;\n-});\n+return obj1 === obj2});\n var _eq_ = (function(obj1,obj2){\n return (function() {if((list_p_(obj1) && list_p_(obj2))) {return ((function() {return ((function() {var loop = (function(lst1,lst2){\n var n1 = null_p_(lst1);\n@@ -484,9 +469,9 @@ return loop(o37,o38);\n }))();\n }))();\n } else {return (function() {if((vector_p_(obj1) && vector_p_(obj2))) {return ((function() {return ((function() {var loop = (function(i){\n-return (function() {if(((i < obj1.length) && (i < obj2.length))) {return ((function() {return true;\n+return (function() {if(((i < obj1["length"]) && (i < obj2["length"]))) {return ((function() {return true;\n }))();\n-} else {return (function() {if(((i < obj1.length) || (i < obj2.length))) {return ((function() {return false;\n+} else {return (function() {if(((i < obj1["length"]) || (i < obj2["length"]))) {return ((function() {return false;\n }))();\n } else {return ((function() {return (function() {if(equal_p_(vector_dash_ref(obj1,i),vector_dash_ref(obj2,i))) {return loop((i + 1));\n } else {return false;\n@@ -534,10 +519,10 @@ return o40(o41,o42);\n var eq_p_ = _eq__eq_;\n var equal_p_ = _eq_;\n var print = (function(msg){\n-return util.print(msg);\n+return util["print"](msg);\n });\n var println = (function(msg){\n-return util.puts(msg);\n+return util["puts"](msg);\n });\n var pp = (function(obj){\n return println(inspect(obj));\n@@ -545,11 +530,11 @@ return println(inspect(obj));\n var _per_inspect_dash_non_dash_sequence = (function(obj){\n return (function() {if(number_p_(obj)) {return ((function() {return ("" + obj);\n }))();\n-} else {return (function() {if(string_p_(obj)) {return ((function() {obj = obj.replace(RegExp("\\\\\\\\","g"),"\\\\\\\\");\n-obj = obj.replace(RegExp("\\n","g"),"\\\\n");\n-obj = obj.replace(RegExp("\\r","g"),"\\\\r");\n-obj = obj.replace(RegExp("\\t","g"),"\\\\t");\n-obj = obj.replace(RegExp("\\"","g"),"\\\\\\"");\n+} else {return (function() {if(string_p_(obj)) {return ((function() {obj = obj["replace"](RegExp("\\\\\\\\","g"),"\\\\\\\\");\n+obj = obj["replace"](RegExp("\\n","g"),"\\\\n");\n+obj = obj["replace"](RegExp("\\r","g"),"\\\\r");\n+obj = obj["replace"](RegExp("\\t","g"),"\\\\t");\n+obj = obj["replace"](RegExp("\\"","g"),"\\\\\\"");\n return ("\\"" + obj + "\\"");\n }))();\n } else {return (function() {if(symbol_p_(obj)) {return ((function() {return symbol_dash__gt_string(obj);\ndiff --git a/runtime.ol b/runtime.ol\nindex 8811609..fa8023a 100644\n--- a/runtime.ol\n+++ b/runtime.ol\n@@ -14,15 +14,15 @@\n    ((dict? obj) \'dict)))\n \n (define (number? obj)\n-  (eq? (%raw "typeof obj") "number"))\n+  (== (%raw "typeof obj") "number"))\n \n (define (string? obj)\n-  (eq? (%raw "typeof obj") "string"))\n+  (and (== (%raw "typeof obj") "string")\n+       (not (== (%raw "obj[0]") (%raw "\\"\\\\uFDD1\\"")))))\n \n (define (symbol? obj)\n-  (and (%raw "!!obj")\n-       (%raw "obj.str !== undefined")\n-       (%raw "obj.symbol !== undefined")))\n+  (and (== (%raw "typeof obj") "string")\n+       (== (%raw "obj[0]") (%raw "\\"\\\\uFDD1\\""))))\n \n (define (boolean? obj)\n   (or (eq? obj (%raw "true"))\n@@ -73,25 +73,25 @@\n \n (define (string->symbol str)\n   (let ((s str))\n-    (set! s (s.replace (RegExp "-" "g") "_dash_"))\n-    (set! s (s.replace (RegExp "\\\\?" "g") "_p_"))\n-    (set! s (s.replace (RegExp "\\\\!" "g") "_excl_"))\n-    (set! s (s.replace (RegExp ">" "g") "_gt_"))\n-    (set! s (s.replace (RegExp "<" "g") "_lt_"))\n-    (set! s (s.replace (RegExp "%" "g") "_per_"))\n-    (set! s (s.replace (RegExp "=" "g") "_eq_"))\n+    ;; (set! s (s.replace (RegExp "-" "g") "_dash_"))\n+    ;; (set! s (s.replace (RegExp "\\\\?" "g") "_p_"))\n+    ;; (set! s (s.replace (RegExp "\\\\!" "g") "_excl_"))\n+    ;; (set! s (s.replace (RegExp ">" "g") "_gt_"))\n+    ;; (set! s (s.replace (RegExp "<" "g") "_lt_"))\n+    ;; (set! s (s.replace (RegExp "%" "g") "_per_"))\n+    ;; (set! s (s.replace (RegExp "=" "g") "_eq_"))\n     ;; raw code so that the compiler doesn\'t see this as a symbol\n-    (%raw "{str:s, symbol:true}")))\n+    (+ (%raw "\\"\\\\uFDD1\\"") s)))\n \n (define (symbol->string sym)\n-  (let ((s sym.str))\n-    (set! s (s.replace (RegExp "_dash_" "g") "-"))\n-    (set! s (s.replace (RegExp "_p_" "g") "?"))\n-    (set! s (s.replace (RegExp "_excl_" "g") "!"))\n-    (set! s (s.replace (RegExp "_gt_" "g") ">"))\n-    (set! s (s.replace (RegExp "_lt_" "g") "<"))\n-    (set! s (s.replace (RegExp "_per_" "g") "%"))\n-    (set! s (s.replace (RegExp "_eq_" "g") "="))\n+  (let ((s (sym.substring 1)))\n+    ;; (set! s (s.replace (RegExp "_dash_" "g") "-"))\n+    ;; (set! s (s.replace (RegExp "_p_" "g") "?"))\n+    ;; (set! s (s.replace (RegExp "_excl_" "g") "!"))\n+    ;; (set! s (s.replace (RegExp "_gt_" "g") ">"))\n+    ;; (set! s (s.replace (RegExp "_lt_" "g") "<"))\n+    ;; (set! s (s.replace (RegExp "_per_" "g") "%"))\n+    ;; (set! s (s.replace (RegExp "_eq_" "g") "="))\n     s))\n \n ;; lists\n@@ -271,10 +271,10 @@\n     res))\n \n (define (dict-put! dct k v)\n-  (%raw "dct[k.str] = v"))\n+  (%raw "dct[k.substring(1)] = v"))\n \n (define (dict-ref dct k)\n-  (%raw "dct[k.str]"))\n+  (%raw "dct[k.substring(1)]"))\n \n (define (dict-map func dct)\n   (define res {})\n@@ -337,9 +337,7 @@\n ;; equality\n \n (define (== obj1 obj2)\n-  (if (and (symbol? obj1) (symbol? obj2))\n-      (%raw "obj1.str === obj2.str")\n-      (%raw "obj1 === obj2")))\n+  (%raw "obj1 === obj2"))\n \n (define (= obj1 obj2)\n   (cond\n@@ -403,6 +401,7 @@\n   (println (inspect obj)))\n \n (define (%inspect-non-sequence obj)\n+  ;;(console.log "%inspect-non-sequence: " obj)\n   (cond\n    ((number? obj) (+ "" obj))\n    ((string? obj)\n@@ -427,6 +426,7 @@\n                                         (cons obj parents)))))))\n \n (define (%space obj)\n+  ;;(console.log "%space: " (util.inspect obj))\n   (%recur-protect\n    obj\n    #f\n@@ -450,6 +450,7 @@\n    (vector-length "<circular>")))\n \n (define (inspect obj . rest)\n+  ;;(console.log "inspect: " obj)\n   (let ((no-newlines (if (null? rest) #f (car rest))))\n     (%recur-protect\n      obj\ndiff --git a/test.js b/test.js\nindex 51032c0..1322f9e 100644\n--- a/test.js\n+++ b/test.js\n@@ -1,17 +1,17 @@\n var util = require("util");var type = (function(obj){\n-return (function() {if(number_p_(obj)) {return ((function() {return string_dash__gt_symbol("number");\n+return (function() {if(number_p_(obj)) {return ((function() {return "\\uFDD1number";\n }))();\n-} else {return (function() {if(boolean_p_(obj)) {return ((function() {return string_dash__gt_symbol("boolean");\n+} else {return (function() {if(boolean_p_(obj)) {return ((function() {return "\\uFDD1boolean";\n }))();\n-} else {return (function() {if(string_p_(obj)) {return ((function() {return string_dash__gt_symbol("string");\n+} else {return (function() {if(string_p_(obj)) {return ((function() {return "\\uFDD1string";\n }))();\n-} else {return (function() {if(null_p_(obj)) {return ((function() {return string_dash__gt_symbol("null");\n+} else {return (function() {if(null_p_(obj)) {return ((function() {return "\\uFDD1null";\n }))();\n-} else {return (function() {if(list_p_(obj)) {return ((function() {return string_dash__gt_symbol("list");\n+} else {return (function() {if(list_p_(obj)) {return ((function() {return "\\uFDD1list";\n }))();\n-} else {return (function() {if(vector_p_(obj)) {return ((function() {return string_dash__gt_symbol("vector");\n+} else {return (function() {if(vector_p_(obj)) {return ((function() {return "\\uFDD1vector";\n }))();\n-} else {return (function() {if(dict_p_(obj)) {return ((function() {return string_dash__gt_symbol("dict");\n+} else {return (function() {if(dict_p_(obj)) {return ((function() {return "\\uFDD1dict";\n }))();\n } else {return false;\n }})()\n@@ -30,28 +30,28 @@ return (function() {if(number_p_(obj)) {return ((function() {return string_dash_\n ;\n });\n var number_p_ = (function(obj){\n-return eq_p_(typeof obj,"number");\n+return _eq__eq_(typeof obj,"number");\n });\n var string_p_ = (function(obj){\n-return eq_p_(typeof obj,"string");\n+return (_eq__eq_(typeof obj,"string") && not(_eq__eq_(obj[0],"\\uFDD1")));\n });\n var symbol_p_ = (function(obj){\n-return (!!obj && obj.str !== undefined && obj.symbol !== undefined);\n+return (_eq__eq_(typeof obj,"string") && _eq__eq_(obj[0],"\\uFDD1"));\n });\n var boolean_p_ = (function(obj){\n return (eq_p_(obj,true) || eq_p_(obj,false));\n });\n var null_p_ = (function(obj){\n-return (!!obj && not(eq_p_(obj.length,undefined)) && eq_p_(obj.length,1) && eq_p_(vector_dash_ref(obj,0),null));\n+return (!!obj && not(eq_p_(obj["length"],undefined)) && eq_p_(obj["length"],1) && eq_p_(vector_dash_ref(obj,0),null));\n });\n var list_p_ = (function(obj){\n-return (!!obj && not(eq_p_(obj.length,undefined)) && not(eq_p_(obj.list,undefined)));\n+return (!!obj && not(eq_p_(obj["length"],undefined)) && not(eq_p_(obj["list"],undefined)));\n });\n var vector_p_ = (function(obj){\n-return (not(list_p_(obj)) && not(null_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && not(eq_p_(obj.length,undefined)));\n+return (not(list_p_(obj)) && not(null_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && not(eq_p_(obj["length"],undefined)));\n });\n var dict_p_ = (function(obj){\n-return (not(symbol_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && eq_p_(obj.length,undefined));\n+return (not(symbol_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && eq_p_(obj["length"],undefined));\n });\n var function_p_ = (function(obj){\n return eq_p_(typeof obj,"function");\n@@ -62,35 +62,25 @@ return (number_p_(x) || string_p_(x) || boolean_p_(x) || null_p_(x));\n var str = (function() {\n var args = vector_dash__gt_list(Array.prototype.slice.call(arguments));\n return fold((function(el,acc){\n-return (acc + inspect(el));\n+return (acc + (function() {if(string_p_(el)) {return el;\n+} else {return inspect(el);\n+}})()\n+);\n }),"",args);\n });\n var string_dash__gt_symbol = (function(str){\n return ((function() {var o1 = (function(s){\n-s = s.replace(RegExp("-","g"),"_dash_");\n-s = s.replace(RegExp("\\\\?","g"),"_p_");\n-s = s.replace(RegExp("\\\\!","g"),"_excl_");\n-s = s.replace(RegExp(">","g"),"_gt_");\n-s = s.replace(RegExp("<","g"),"_lt_");\n-s = s.replace(RegExp("%","g"),"_per_");\n-s = s.replace(RegExp("=","g"),"_eq_");\n-return {str:s, symbol:true}});\n+return ("\\uFDD1" + s);\n+});\n var o2 = str;\n return o1(o2);\n }))();\n });\n var symbol_dash__gt_string = (function(sym){\n return ((function() {var o3 = (function(s){\n-s = s.replace(RegExp("_dash_","g"),"-");\n-s = s.replace(RegExp("_p_","g"),"?");\n-s = s.replace(RegExp("_excl_","g"),"!");\n-s = s.replace(RegExp("_gt_","g"),">");\n-s = s.replace(RegExp("_lt_","g"),"<");\n-s = s.replace(RegExp("_per_","g"),"%");\n-s = s.replace(RegExp("_eq_","g"),"=");\n return s;\n });\n-var o4 = sym.str;\n+var o4 = sym["substring"](1);\n return o3(o4);\n }))();\n });\n@@ -178,14 +168,15 @@ return ((function() {var o10 = (function(access){\n return ((function() {var loop = (function(lst){\n return (function() {if(null_p_(lst)) {return false;\n } else {return (function() {if(_eq__eq_(access(car(lst)),val)) {return lst;\n-} else {return loop(cdr(lst));\n+} else {return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n }})()\n ;\n }})()\n ;\n });\n var o12 = lst;\n-return loop(o12);\n+return trampoline(loop(o12));\n }))();\n });\n var o11 = (function() {if(null_p_(rst)) {return (function(x){\n@@ -204,13 +195,19 @@ return (function() {if(null_p_(lst)) {return _emptylst;\n ;\n });\n var for_dash_each = (function(func,lst){\n+return ((function() {var loop = (function(lst){\n return (function() {if(not(null_p_(lst))) {return ((function() {func(car(lst));\n-return for_dash_each(func,cdr(lst));\n+return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n+var o13 = lst;\n+return trampoline(loop(o13));\n+}))();\n+});\n var fold = (function(func,acc,lst){\n return (function() {if(null_p_(lst)) {return acc;\n } else {return fold(func,func(car(lst),acc),cdr(lst));\n@@ -229,26 +226,27 @@ return (function() {if((i < vec.length)) {return cons(vector_dash_ref(vec,i),loo\n } else {return _emptylst}})()\n ;\n });\n-var o13 = 0;\n-return loop(o13);\n+var o14 = 0;\n+return loop(o14);\n }))();\n });\n var make_dash_vector = (function(count,val){\n-return ((function() {var o14 = (function(v){\n+return ((function() {var o15 = (function(v){\n return ((function() {var loop = (function(i){\n return (function() {if((i < count)) {return ((function() {vector_dash_put_excl_(v,i,val);\n-return loop((i + 1));\n+return vector("__tco_call",(function() {return loop((i + 1));\n+}));\n }))();\n } else {return v;\n }})()\n ;\n });\n-var o16 = 0;\n-return loop(o16);\n+var o17 = 0;\n+return trampoline(loop(o17));\n }))();\n });\n-var o15 = new Array(count);\n-return o14(o15);\n+var o16 = new Array(count);\n+return o15(o16);\n }))();\n });\n var vector = (function() {return Array.prototype.slice.call(arguments)});\n@@ -265,113 +263,119 @@ return vec.push(obj)});\n var vector_dash_find = (function(vec,val){\n return ((function() {var loop = (function(i){\n return (function() {if((i < vec.length)) {return (function() {if(eq_p_(vector_dash_ref(vec,i),val)) {return i;\n-} else {return loop((i + 1));\n+} else {return vector("__tco_call",(function() {return loop((i + 1));\n+}));\n }})()\n ;\n } else {return false;\n }})()\n ;\n });\n-var o17 = 0;\n-return loop(o17);\n+var o18 = 0;\n+return trampoline(loop(o18));\n }))();\n });\n var vector_dash_length = (function(vec){\n-return vec.length;\n+return vec["length"];\n });\n var list_dash__gt_vector = (function(lst){\n var res = [];\n for_dash_each((function(el){\n-return res.push(el);\n+return res["push"](el);\n }),lst);\n return res;\n });\n var vector_dash_map = (function(func,vec){\n var res = [];\n ((function() {var loop = (function(i){\n-return (function() {if((i < vec.length)) {return ((function() {res.push(func(vector_dash_ref(vec,i)));\n-return loop((i + 1));\n+return (function() {if((i < vec["length"])) {return ((function() {res["push"](func(vector_dash_ref(vec,i)));\n+return vector("__tco_call",(function() {return loop((i + 1));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o18 = 0;\n-return loop(o18);\n+var o19 = 0;\n+return trampoline(loop(o19));\n }))();\n return res;\n });\n var vector_dash_for_dash_each = (function(func,vec){\n return ((function() {var loop = (function(i){\n-return (function() {if((i < vec.length)) {return ((function() {func(vector_dash_ref(vec,i));\n-return loop((i + 1));\n+return (function() {if((i < vec["length"])) {return ((function() {func(vector_dash_ref(vec,i));\n+return vector("__tco_call",(function() {return loop((i + 1));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o19 = 0;\n-return loop(o19);\n+var o20 = 0;\n+return trampoline(loop(o20));\n }))();\n });\n var vector_dash_fold = (function(func,acc,vec){\n return ((function() {var loop = (function(i,acc){\n-return (function() {if((i < vector_dash_length(vec))) {return loop((i + 1),func(vector_dash_ref(vec,i),acc));\n+return (function() {if((i < vector_dash_length(vec))) {return vector("__tco_call",(function() {return loop((i + 1),func(vector_dash_ref(vec,i),acc));\n+}));\n } else {return acc;\n }})()\n ;\n });\n-var o20 = 0;\n-var o21 = acc;\n-return loop(o20,o21);\n+var o21 = 0;\n+var o22 = acc;\n+return trampoline(loop(o21,o22));\n }))();\n });\n var dict = (function() {\n var args = vector_dash__gt_list(Array.prototype.slice.call(arguments));\n var res = {};\n ((function() {var loop = (function(lst){\n-return (function() {if(not(null_p_(lst))) {return ((function() {var o23 = (function(key,val){\n+return (function() {if(not(null_p_(lst))) {return ((function() {var o24 = (function(key,val){\n dict_dash_put_excl_(res,key,val);\n-return loop(cddr(lst));\n+return vector("__tco_call",(function() {return loop(cddr(lst));\n+}));\n });\n-var o24 = car(lst);\n-var o25 = cadr(lst);\n-return o23(o24,o25);\n+var o25 = car(lst);\n+var o26 = cadr(lst);\n+return o24(o25,o26);\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o22 = args;\n-return loop(o22);\n+var o23 = args;\n+return trampoline(loop(o23));\n }))();\n return res;\n });\n var dict_dash_put_excl_ = (function(dct,k,v){\n-return dct[k.str] = v});\n+return dct[k.substring(1)] = v});\n var dict_dash_ref = (function(dct,k){\n-return dct[k.str]});\n+return dct[k.substring(1)]});\n var dict_dash_map = (function(func,dct){\n var res = dict();\n ((function() {var loop = (function(lst){\n-return (function() {if(not(null_p_(lst))) {return ((function() {var o27 = (function(k){\n+return (function() {if(not(null_p_(lst))) {return ((function() {var o28 = (function(k){\n dict_dash_put_excl_(res,k,func(dict_dash_ref(dct,k)));\n-return loop(cdr(lst));\n+return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n });\n-var o28 = car(lst);\n-return o27(o28);\n+var o29 = car(lst);\n+return o28(o29);\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o26 = keys(dct);\n-return loop(o26);\n+var o27 = keys(dct);\n+return trampoline(loop(o27));\n }))();\n return res;\n });\n var dict_dash_merge = (function(dct1,dct2){\n-return ((function() {var o29 = (function(res){\n+return ((function() {var o30 = (function(res){\n map((function(k){\n return dict_dash_put_excl_(res,k,dict_dash_ref(dct1,k));\n }),keys(dct1));\n@@ -380,8 +384,8 @@ return dict_dash_put_excl_(res,k,dict_dash_ref(dct2,k));\n }),keys(dct2));\n return res;\n });\n-var o30 = dict();\n-return o29(o30);\n+var o31 = dict();\n+return o30(o31);\n }))();\n });\n var dict_dash__gt_vector = (function(dct){\n@@ -389,14 +393,15 @@ var res = vector();\n ((function() {var loop = (function(lst){\n return (function() {if(not(null_p_(lst))) {return ((function() {vector_dash_push_excl_(res,car(lst));\n vector_dash_push_excl_(res,dict_dash_ref(dct,car(lst)));\n-return loop(cdr(lst));\n+return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o31 = keys(dct);\n-return loop(o31);\n+var o32 = keys(dct);\n+return trampoline(loop(o32));\n }))();\n return res;\n });\n@@ -404,13 +409,13 @@ var dict_dash__gt_list = (function(dct){\n return vector_dash__gt_list(dict_dash__gt_vector(dct));\n });\n var keys = (function(dct){\n-return ((function() {var o32 = (function(res){\n+return ((function() {var o33 = (function(res){\n for(var k in dct) {\n        res = cons(string_dash__gt_symbol(k), res);\n     }return res;\n });\n-var o33 = _emptylst;\n-return o32(o33);\n+var o34 = _emptylst;\n+return o33(o34);\n }))();\n });\n var vals = (function(dct){\n@@ -422,15 +427,16 @@ var zip = (function(keys,vals){\n var res = dict();\n ((function() {var loop = (function(ks,vs){\n return (function() {if(not(null_p_(ks))) {return ((function() {dict_dash_put_excl_(res,car(ks),car(vs));\n-return loop(cdr(ks),cdr(vs));\n+return vector("__tco_call",(function() {return loop(cdr(ks),cdr(vs));\n+}));\n }))();\n } else {return false;\n }})()\n ;\n });\n-var o34 = keys;\n-var o35 = vals;\n-return loop(o34,o35);\n+var o35 = keys;\n+var o36 = vals;\n+return trampoline(loop(o35,o36));\n }))();\n return res;\n });\n@@ -438,9 +444,7 @@ var not = (function(obj){\n return (typeof obj !== \'number\' && !obj);\n });\n var _eq__eq_ = (function(obj1,obj2){\n-return (function() {if((symbol_p_(obj1) && symbol_p_(obj2))) {return obj1.str === obj2.str} else {return obj1 === obj2}})()\n-;\n-});\n+return obj1 === obj2});\n var _eq_ = (function(obj1,obj2){\n return (function() {if((list_p_(obj1) && list_p_(obj2))) {return ((function() {return ((function() {var loop = (function(lst1,lst2){\n var n1 = null_p_(lst1);\n@@ -459,15 +463,15 @@ return (function() {if((n1 && n2)) {return ((function() {return true;\n }})()\n ;\n });\n-var o36 = obj1;\n-var o37 = obj2;\n-return loop(o36,o37);\n+var o37 = obj1;\n+var o38 = obj2;\n+return loop(o37,o38);\n }))();\n }))();\n } else {return (function() {if((vector_p_(obj1) && vector_p_(obj2))) {return ((function() {return ((function() {var loop = (function(i){\n-return (function() {if(((i < obj1.length) && (i < obj2.length))) {return ((function() {return true;\n+return (function() {if(((i < obj1["length"]) && (i < obj2["length"]))) {return ((function() {return true;\n }))();\n-} else {return (function() {if(((i < obj1.length) || (i < obj2.length))) {return ((function() {return false;\n+} else {return (function() {if(((i < obj1["length"]) || (i < obj2["length"]))) {return ((function() {return false;\n }))();\n } else {return ((function() {return (function() {if(equal_p_(vector_dash_ref(obj1,i),vector_dash_ref(obj2,i))) {return loop((i + 1));\n } else {return false;\n@@ -479,27 +483,28 @@ return (function() {if(((i < obj1.length) && (i < obj2.length))) {return ((funct\n }})()\n ;\n });\n-var o38 = 0;\n-return loop(o38);\n+var o39 = 0;\n+return loop(o39);\n }))();\n }))();\n-} else {return (function() {if((dict_p_(obj1) && dict_p_(obj2))) {return ((function() {return ((function() {var o39 = (function(keys1,keys2){\n+} else {return (function() {if((dict_p_(obj1) && dict_p_(obj2))) {return ((function() {return ((function() {var o40 = (function(keys1,keys2){\n return (eq_p_(length(keys1),length(keys2)) && ((function() {var loop = (function(lst){\n return (function() {if(null_p_(lst)) {return true;\n-} else {return (function() {if(equal_p_(dict_dash_ref(obj1,car(lst)),dict_dash_ref(obj2,car(lst)))) {return loop(cdr(lst));\n+} else {return (function() {if(equal_p_(dict_dash_ref(obj1,car(lst)),dict_dash_ref(obj2,car(lst)))) {return vector("__tco_call",(function() {return loop(cdr(lst));\n+}));\n } else {return false;\n }})()\n ;\n }})()\n ;\n });\n-var o42 = keys1;\n-return loop(o42);\n+var o43 = keys1;\n+return trampoline(loop(o43));\n }))());\n });\n-var o40 = keys(obj1);\n-var o41 = keys(obj2);\n-return o39(o40,o41);\n+var o41 = keys(obj1);\n+var o42 = keys(obj2);\n+return o40(o41,o42);\n }))();\n }))();\n } else {return ((function() {return eq_p_(obj1,obj2);\n@@ -513,109 +518,153 @@ return o39(o40,o41);\n });\n var eq_p_ = _eq__eq_;\n var equal_p_ = _eq_;\n-var display = (function(msg){\n-return console.log(msg);\n+var print = (function(msg){\n+return util["print"](msg);\n+});\n+var println = (function(msg){\n+return util["puts"](msg);\n });\n var pp = (function(obj){\n-return display(str(inspect(obj),"\\n"));\n+return println(inspect(obj));\n });\n-var inspect = (function(obj){\n-var rest = vector_dash__gt_list(Array.prototype.slice.call(arguments, 1));\n-var space = (function(obj){\n-return (function() {if((literal_p_(obj) || symbol_p_(obj))) {return ((function() {return vector_dash_length(inspect(obj));\n+var _per_inspect_dash_non_dash_sequence = (function(obj){\n+return (function() {if(number_p_(obj)) {return ((function() {return ("" + obj);\n }))();\n-} else {return (function() {if(list_p_(obj)) {return ((function() {return (length(obj) + 1 + fold((function(el,acc){\n-return (acc + space(el));\n-}),0,obj));\n+} else {return (function() {if(string_p_(obj)) {return ((function() {obj = obj["replace"](RegExp("\\\\\\\\","g"),"\\\\\\\\");\n+obj = obj["replace"](RegExp("\\n","g"),"\\\\n");\n+obj = obj["replace"](RegExp("\\r","g"),"\\\\r");\n+obj = obj["replace"](RegExp("\\t","g"),"\\\\t");\n+obj = obj["replace"](RegExp("\\"","g"),"\\\\\\"");\n+return ("\\"" + obj + "\\"");\n }))();\n-} else {return (function() {if(dict_p_(obj)) {return ((function() {return space(dict_dash__gt_list(obj));\n+} else {return (function() {if(symbol_p_(obj)) {return ((function() {return symbol_dash__gt_string(obj);\n }))();\n-} else {return (function() {if(vector_p_(obj)) {return ((function() {return space(vector_dash__gt_list(obj));\n+} else {return (function() {if(boolean_p_(obj)) {return ((function() {return (function() {if(obj) {return "#t";\n+} else {return "#f";\n+}})()\n+;\n }))();\n-} else {return false;\n+} else {return (function() {if(null_p_(obj)) {return ((function() {return "()";\n+}))();\n+} else {return (function() {if(function_p_(obj)) {return ((function() {return "<function>";\n+}))();\n+} else {return ((function() {throw("%inspect-non-sequence: unexpected type");\n+}))();\n+}})()\n+;\n+}})()\n+;\n+}})()\n+;\n+}})()\n+;\n }})()\n ;\n }})()\n ;\n+});\n+var _per_recur_dash_protect = (function(obj,arg,func,halt){\n+var rest = vector_dash__gt_list(Array.prototype.slice.call(arguments, 4));\n+return ((function() {var o44 = (function(parents){\n+return (function() {if(list_dash_find(parents,obj)) {return halt;\n+} else {return func(obj,arg,(function(el,arg){\n+return _per_recur_dash_protect(el,arg,func,halt,cons(obj,parents));\n+}));\n }})()\n ;\n+});\n+var o45 = (function() {if(null_p_(rest)) {return _emptylst;\n+} else {return car(rest);\n }})()\n ;\n+return o44(o45);\n+}))();\n });\n-return ((function() {var o43 = (function(i){\n+var _per_space = (function(obj){\n+return _per_recur_dash_protect(obj,false,(function(obj,arg,recur){\n+return (function() {if(list_p_(obj)) {return ((function() {return (length(obj) + 1 + fold((function(el,acc){\n+return (acc + recur(el,false));\n+}),0,obj));\n+}))();\n+} else {return (function() {if(dict_p_(obj)) {return ((function() {return recur(dict_dash__gt_list(obj),false);\n+}))();\n+} else {return (function() {if(vector_p_(obj)) {return ((function() {return recur(vector_dash__gt_list(obj),false);\n+}))();\n+} else {return ((function() {return vector_dash_length(_per_inspect_dash_non_dash_sequence(obj));\n+}))();\n+}})()\n+;\n+}})()\n+;\n+}})()\n+;\n+}),vector_dash_length("<circular>"));\n+});\n+var inspect = (function(obj){\n+var rest = vector_dash__gt_list(Array.prototype.slice.call(arguments, 1));\n+return ((function() {var o46 = (function(no_dash_newlines){\n+return _per_recur_dash_protect(obj,1,(function(obj,i,recur){\n var buffer = "";\n var get_dash_buffer = (function() {return buffer;\n });\n-var disp = (function(str){\n-buffer = (buffer + str);\n+var disp = (function(s){\n+buffer = (buffer + s);\n });\n var pad = (function(n){\n return vector_dash_for_dash_each((function(_){\n return disp(" ");\n }),make_dash_vector(n));\n });\n-return (function() {if(number_p_(obj)) {return ((function() {return ("" + obj);\n-}))();\n-} else {return (function() {if(string_p_(obj)) {return ((function() {return obj;\n-}))();\n-} else {return (function() {if(symbol_p_(obj)) {return ((function() {return symbol_dash__gt_string(obj);\n-}))();\n-} else {return (function() {if(boolean_p_(obj)) {return ((function() {return (function() {if(obj) {return "#t";\n-} else {return "#f";\n-}})()\n-;\n-}))();\n-} else {return (function() {if(null_p_(obj)) {return ((function() {return "()";\n-}))();\n-} else {return (function() {if(function_p_(obj)) {return ((function() {return "<function>";\n-}))();\n-} else {return (function() {if(list_p_(obj)) {return ((function() {return ((function() {var o45 = (function(node,childr,sp){\n+return (function() {if(list_p_(obj)) {return ((function() {return ((function() {var o48 = (function(sp,first){\n disp("(");\n-disp(inspect(node,(i + 1)));\n-for_dash_each((function(item){\n-(function() {if(sp) {return ((function() {disp("\\n");\n+for_dash_each((function(el){\n+(function() {if(not(first)) {return (function() {if((sp && not(no_dash_newlines))) {return ((function() {disp("\\n");\n return pad(i);\n }))();\n } else {return disp(" ");\n }})()\n ;\n-return disp(inspect(item,(i + 1)));\n-}),childr);\n+} else {return false;\n+}})()\n+;\n+disp(recur(el,(i + 1)));\n+first = false;\n+}),obj);\n disp(")");\n return get_dash_buffer();\n });\n-var o46 = car(obj);\n-var o47 = cdr(obj);\n-var o48 = (space(obj) > 30);\n-return o45(o46,o47,o48);\n+var o49 = (_per_space(obj) > 30);\n+var o50 = true;\n+return o48(o49,o50);\n }))();\n }))();\n-} else {return (function() {if(vector_p_(obj)) {return ((function() {return ((function() {var o49 = (function(first,rest,sp){\n+} else {return (function() {if(vector_p_(obj)) {return ((function() {return ((function() {var o51 = (function(sp,first){\n disp("[");\n-disp(inspect(first,(i + 1)));\n-vector_dash_for_dash_each((function(item){\n-(function() {if(sp) {return ((function() {disp("\\n");\n+vector_dash_for_dash_each((function(el){\n+(function() {if(not(first)) {return (function() {if((sp && not(no_dash_newlines))) {return ((function() {disp("\\n");\n return pad(i);\n }))();\n } else {return disp(" ");\n }})()\n ;\n-return disp(inspect(item,(i + 1)));\n-}),rest);\n+} else {return false;\n+}})()\n+;\n+disp(recur(el,(i + 1)));\n+first = false;\n+}),obj);\n disp("]");\n return get_dash_buffer();\n });\n-var o50 = vector_dash_ref(obj,0);\n-var o51 = vector_dash_slice(obj,1);\n-var o52 = (space(obj) > 30);\n-return o49(o50,o51,o52);\n+var o52 = (_per_space(obj) > 30);\n+var o53 = true;\n+return o51(o52,o53);\n }))();\n }))();\n-} else {return (function() {if(dict_p_(obj)) {return ((function() {disp("{");\n-((function() {var o53 = (function(lst,sp){\n-return ((function() {var loop = (function(lst,first){\n-return (function() {if(not(null_p_(lst))) {return ((function() {var o58 = (function(key,val){\n-(function() {if(not(first)) {return (function() {if(sp) {return ((function() {disp("\\n");\n+} else {return (function() {if(dict_p_(obj)) {return ((function() {return ((function() {var o54 = (function(sp,first){\n+disp("{");\n+for_dash_each((function(k){\n+(function() {if(not(first)) {return (function() {if((sp && not(no_dash_newlines))) {return ((function() {disp("\\n");\n return pad(i);\n }))();\n } else {return disp(" ");\n@@ -625,61 +674,45 @@ return pad(i);\n }})()\n ;\n disp(":");\n-disp(inspect(key,i));\n+disp(recur(k,i));\n disp(" ");\n-disp(inspect(val,(i + 1 + vector_dash_length(symbol_dash__gt_string(key)))));\n-return loop(cddr(lst),false);\n+disp(recur(dict_dash_ref(obj,k),(i + 3 + vector_dash_length(symbol_dash__gt_string(k)))));\n+first = false;\n+}),keys(obj));\n+disp("}");\n+return get_dash_buffer();\n });\n-var o59 = car(lst);\n-var o60 = cadr(lst);\n-return o58(o59,o60);\n+var o55 = (_per_space(obj) > 30);\n+var o56 = true;\n+return o54(o55,o56);\n }))();\n-} else {return false;\n-}})()\n-;\n-});\n-var o56 = lst;\n-var o57 = true;\n-return loop(o56,o57);\n }))();\n-});\n-var o54 = dict_dash__gt_list(obj);\n-var o55 = (space(obj) > 30);\n-return o53(o54,o55);\n+} else {return ((function() {return _per_inspect_dash_non_dash_sequence(obj);\n }))();\n-disp("}");\n-return get_dash_buffer();\n-}))();\n-} else {return false;\n-}})()\n-;\n-}})()\n-;\n-}})()\n-;\n-}})()\n-;\n-}})()\n-;\n-}})()\n-;\n }})()\n ;\n }})()\n ;\n }})()\n ;\n+}),"<circular>");\n });\n-var o44 = (function() {if(null_p_(rest)) {return 1;\n+var o47 = (function() {if(null_p_(rest)) {return false;\n } else {return car(rest);\n }})()\n ;\n-return o43(o44);\n+return o46(o47);\n }))();\n });\n var apply = (function(func,args){\n return func.apply(null,list_dash__gt_vector(args));\n });\n+var trampoline_dash_result_p_ = (function(value){\n+return (vector_p_(value) && _eq_(vector_dash_ref(value,0),"__tco_call"));\n+});\n+var trampoline = (function(value){\n+while(trampoline_dash_result_p_(value)) { value = value[1](); }return value;\n+});\n var _gensym = 0;\n var gensym = (function() {_gensym = (_gensym + 1);\n return string_dash__gt_symbol(("o" + _gensym));\n@@ -689,31 +722,32 @@ return string_dash__gt_symbol(("o" + _gensym));\n var __compiler = require(\'/Users/james/projects/outlet/compiler\');\n var __generator = require(\'/Users/james/projects/outlet/backends/js\');\n var read = __compiler.read;\n-var fs = require("fs");var compiler = require("./compiler");var boot = require("./boot/compiler");var util = require("util");var js = require("./backends/js");var trace = require("./trace");(function() {if((process.argv.length < 3)) {throw("must pass a filename");\n+var fs = require("fs");var compiler = require("./compiler");var boot = require("./boot/compiler");var util = require("util");var js = require("./backends/js");(function() {if((process["argv"]["length"] < 3)) {throw("must pass a filename");\n } else {return false;\n }})()\n ;\n ((function() {var o1 = (function(filename){\n-return ((function() {var o3 = (function(src,gen,comp){\n-comp.set_dash_macro_dash_generator(gen);\n-return ((function() {var o7 = (function(f){\n-comp.parse(f,gen);\n-return eval(gen.get_dash_code());\n+return ((function() {var o3 = (function(src,gen,comp,comp){\n+comp["set-macro-generator"](gen);\n+return ((function() {var o8 = (function(f){\n+comp["parse"](f,gen);\n+return eval(gen["get-code"]());\n });\n-var o8 = comp.expand(read(src));\n-return o7(o8);\n+var o9 = comp["expand"](comp["read"](src));\n+return o8(o9);\n }))();\n });\n-var o4 = fs.readFileSync(str("tests/",filename),"utf-8");\n+var o4 = fs["readFileSync"](str("tests/",filename),"utf-8");\n var o5 = js();\n var o6 = (function() {if(_eq_(filename,"syntax.ol")) {return boot;\n } else {return compiler;\n }})()\n ;\n-return o3(o4,o5,o6);\n+var o7 = compiler;\n+return o3(o4,o5,o6,o7);\n }))();\n });\n-var o2 = vector_dash_ref(process.argv,2);\n+var o2 = vector_dash_ref(process["argv"],2);\n return o1(o2);\n }))();\n \ndiff --git a/test.ol b/test.ol\nindex f641b4f..b234483 100644\n--- a/test.ol\n+++ b/test.ol\n@@ -2,8 +2,7 @@\n          (compiler "./compiler")\n          (boot "./boot/compiler")\n          (util "util")\n-         (js "./backends/js")\n-         (trace "./trace"))\n+         (js "./backends/js"))\n \n (if (< process.argv.length 3)\n     (throw "must pass a filename"))\n@@ -18,17 +17,19 @@\n         ;; current compiler and using `read` will compare the results\n         (comp (if (= filename "syntax.ol")\n                   boot\n-                  compiler)))\n-      \n+                  compiler))\n \n-      ;; if dumping to an external file, need to write the runtime\n-      ;; (gen.write-runtime "js")\n+        ;; just kidding, always use the current compiler\n+        (comp compiler))\n+      \n+    ;; if dumping to an external file, need to write the runtime\n+    ;;(gen.write-runtime "js")\n \n-      (comp.set-macro-generator gen)\n+    (comp.set-macro-generator gen)\n \n-      (let ((f (comp.expand (read src))))\n-        ;;(pp f)\n-        (comp.parse f gen)\n-        ((%raw "eval") (gen.get-code))\n-        ;;(display (gen.get-code))\n-        )))\n+    (let ((f (comp.expand (comp.read src))))\n+      ;;(pp f)\n+      (comp.parse f gen)\n+      ((%raw "eval") (gen.get-code))\n+      ;;(println (gen.get-code))\n+      )))\ndiff --git a/tests/core.ol b/tests/core.ol\nindex 785a9b2..efc986d 100644\n--- a/tests/core.ol\n+++ b/tests/core.ol\n@@ -5,11 +5,11 @@\n          (res (,hook ,src)))\n      (if (not (comp res ,val))\n          (throw (str "FAILURE with " (inspect \',hook) ": "\n-                     (inspect ,src)\n+                     (util.inspect ,src)\n                      " got "\n-                     (inspect res)\n+                     (util.inspect res)\n                      " but expected "\n-                     (inspect ,val))))))\n+                     (util.inspect ,val))))))\n \n (define-macro (test-read src val . args)\n   `(%test read ,src ,val ,@args))\n@@ -219,7 +219,7 @@\n (test-eval (== {:one 1} {:one 1}) #f)\n (test-assert (= {:one 1} {:one 1}))\n \n-;; types\n+;; ;; types\n \n (define-macro (ensure-type val truthy)\n   (cons \'begin\ndiff --git a/tests/syntax.ol b/tests/syntax.ol\nindex 55fe649..f6b93ba 100644\n--- a/tests/syntax.ol\n+++ b/tests/syntax.ol\n@@ -8,16 +8,16 @@\n (define (test-read src expected)\n   (if (not (= (read src) expected))\n       (throw (str "FAILURE: got "\n-                  (inspect (read src))\n+                  (util.inspect (read src) #t 20)\n                   " but expected "\n-                  (inspect expected)))))\n+                  (util.inspect expected #t 20)))))\n \n (define (test-eval val expected)\n   (if (not (= val expected))\n       (throw (str "FAILURE: got "\n-                  (inspect val)\n+                  (util.inspect val #t 20)\n                   " but expected "\n-                  (inspect expected)))))\n+                  (util.inspect expected #t 20)))))\n \n (define (test-assert val)\n   (if (not val)\ndiff --git a/web/debugger/debugger.js b/web/debugger/debugger.js\nindex d94966c..699fd7d 100644\n--- a/web/debugger/debugger.js\n+++ b/web/debugger/debugger.js\n@@ -5,7 +5,7 @@ fs.readFileSync = function(src) {\n     return \'1\';\n };\n \n-machine.set_dash_stdin_dash_handler_excl_(function() {\n+machine[\'set-stdin-handler!\'] = (function() {\n     outlet_display(\n         \'<div><strong>breakpoint</strong> w/expression:</div>\' +\n             inspect(\ndiff --git a/web/debugger/render.js b/web/debugger/render.js\nindex eec5024..1f8c326 100644\n--- a/web/debugger/render.js\n+++ b/web/debugger/render.js\n@@ -1,22 +1,34 @@\n var __args = process.argv.slice(2);var vm = require("./vm");var width = 400;\n var height = 400;\n var ctx = false;\n-var render_dash_clear = (function() {ctx.fillStyle = "black";\n-return ctx.fillRect(0,0,width,height);\n+var render_dash_clear = (function() {ctx["fillStyle"] = "black";\n+return ctx["fillRect"](0,0,width,height);\n });\n var render_dash_box = (function(color,x,y,width,height){\n-ctx.fillStyle = color;\n-return ctx.fillRect(x,y,width,height);\n+ctx["fillStyle"] = color;\n+return ctx["fillRect"](x,y,width,height);\n });\n-document.addEventListener("DOMContentLoaded",(function() {((function() {var o1 = (function(canvas){\n-canvas.width = width;\n-canvas.height = height;\n-ctx = canvas.getContext("2d");\n+var profile_dash_start = 0;\n+var profile_dash_avg = 0;\n+var profile_dash_count = 0;\n+var timer_dash_start = (function() {var d = new Date();\n+profile_dash_start = d["getTime"]();\n });\n-var o2 = document.getElementById("canvas");\n+var timer_dash_end = (function() {var d = new Date();\n+var t = (d["getTime"]() - profile_dash_start);\n+profile_dash_count = (profile_dash_count + 1);\n+profile_dash_avg = (((profile_dash_avg * (profile_dash_count - 1)) + t) / profile_dash_count);\n+return console["log"]("timer:",t,"avg:",profile_dash_avg);\n+});\n+document["addEventListener"]("DOMContentLoaded",(function() {((function() {var o1 = (function(canvas){\n+canvas["width"] = width;\n+canvas["height"] = height;\n+ctx = canvas["getContext"]("2d");\n+});\n+var o2 = document["getElementById"]("canvas");\n return o1(o2);\n }))();\n-vm.install_dash_primitives(dict(string_dash__gt_symbol("render_dash_clear"),render_dash_clear,string_dash__gt_symbol("render_dash_box"),render_dash_box,string_dash__gt_symbol("rand"),Math.random));\n-return vm.run(list(string_dash__gt_symbol("begin"),list(string_dash__gt_symbol("define"),list(string_dash__gt_symbol("render")),list(string_dash__gt_symbol("define"),list(string_dash__gt_symbol("rand_dash_int")),list(string_dash__gt_symbol("*"),list(string_dash__gt_symbol("rand")),150)),list(string_dash__gt_symbol("define"),list(string_dash__gt_symbol("render_dash_rand"),string_dash__gt_symbol("x"),string_dash__gt_symbol("y"),string_dash__gt_symbol("width"),string_dash__gt_symbol("height")),list(string_dash__gt_symbol("render_dash_box"),"green",string_dash__gt_symbol("x"),string_dash__gt_symbol("y"),string_dash__gt_symbol("width"),string_dash__gt_symbol("height"))),list(string_dash__gt_symbol("define"),list(string_dash__gt_symbol("render_dash_n"),string_dash__gt_symbol("n"),string_dash__gt_symbol("i")),list(string_dash__gt_symbol("break")),list(string_dash__gt_symbol("if"),list(string_dash__gt_symbol("_lt_"),string_dash__gt_symbol("i"),string_dash__gt_symbol("n")),list(string_dash__gt_symbol("begin"),list(string_dash__gt_symbol("render_dash_rand"),list(string_dash__gt_symbol("rand_dash_int")),list(string_dash__gt_symbol("rand_dash_int")),list(string_dash__gt_symbol("rand_dash_int")),list(string_dash__gt_symbol("rand_dash_int"))),list(string_dash__gt_symbol("render_dash_n"),string_dash__gt_symbol("n"),list(string_dash__gt_symbol("+"),string_dash__gt_symbol("i"),1))))),list(string_dash__gt_symbol("render_dash_clear")),list(string_dash__gt_symbol("render_dash_n"),50,0),list(string_dash__gt_symbol("next")),list(string_dash__gt_symbol("render"))),list(string_dash__gt_symbol("render"))));\n+vm["install-primitives"](dict("\\uFDD1render-clear",render_dash_clear,"\\uFDD1render-box",render_dash_box,"\\uFDD1rand",Math["random"],"\\uFDD1timer-start",timer_dash_start,"\\uFDD1timer-end",timer_dash_end));\n+return vm["run"](list("\\uFDD1begin",list("\\uFDD1define",list("\\uFDD1rand-int"),list("\\uFDD1*",list("\\uFDD1rand"),150)),list("\\uFDD1define",list("\\uFDD1render-rand","\\uFDD1x","\\uFDD1y","\\uFDD1width","\\uFDD1height"),list("\\uFDD1render-box","green","\\uFDD1x","\\uFDD1y","\\uFDD1width","\\uFDD1height")),list("\\uFDD1define",list("\\uFDD1render-n","\\uFDD1n","\\uFDD1i"),list("\\uFDD1if",list("\\uFDD1<","\\uFDD1i","\\uFDD1n"),list("\\uFDD1begin",list("\\uFDD1render-rand",list("\\uFDD1rand-int"),list("\\uFDD1rand-int"),list("\\uFDD1rand-int"),list("\\uFDD1rand-int")),list("\\uFDD1render-n","\\uFDD1n",list("\\uFDD1+","\\uFDD1i",1))))),list("\\uFDD1define",list("\\uFDD1render"),list("\\uFDD1render-clear"),list("\\uFDD1render-n",500,0),list("\\uFDD1next"),list("\\uFDD1render")),list("\\uFDD1render")));\n }));\n \ndiff --git a/web/debugger/render.ol b/web/debugger/render.ol\nindex ebe720c..a01aad2 100644\n--- a/web/debugger/render.ol\n+++ b/web/debugger/render.ol\n@@ -1,4 +1,3 @@\n-\n (require (vm "./vm"))\n \n (define width 400)\n@@ -14,6 +13,24 @@\n   (set! ctx.fillStyle color)\n   (ctx.fillRect x y width height))\n \n+(define profile-start 0)\n+(define profile-avg 0)\n+(define profile-count 0)\n+\n+(define (timer-start)\n+  (define d (%raw "new Date()"))\n+  (set! profile-start (d.getTime)))\n+\n+(define (timer-end)\n+  (define d (%raw "new Date()"))\n+  (define t (- (d.getTime) profile-start))\n+\n+  (set! profile-count (+ profile-count 1))\n+  (set! profile-avg (/ (+ (* profile-avg (- profile-count 1)) t)\n+                       profile-count))\n+\n+  (console.log "timer:" t "avg:" profile-avg))\n+\n (document.addEventListener\n  "DOMContentLoaded"\n  (lambda ()\n@@ -24,29 +41,34 @@\n \n    (vm.install-primitives {:render-clear render-clear\n                            :render-box render-box\n-                           :rand Math.random})\n+                           :rand Math.random\n+                           :timer-start timer-start\n+                           :timer-end timer-end})\n    ;;(vm.stepping-mode)\n    (vm.run\n     \'(begin\n+       (define (rand-int)\n+         (* (rand) 150))\n+       \n+       (define (render-rand x y width height)\n+         ;;(break)\n+         (render-box "green" x y width height))\n+\n+       (define (render-n n i)\n+         ;;(break)\n+         (if (< i n)\n+             (begin\n+               (render-rand (rand-int)\n+                            (rand-int)\n+                            (rand-int)\n+                            (rand-int))\n+               (render-n n (+ i 1)))))\n+\n        (define (render)\n-         (define (rand-int)\n-           (* (rand) 150))\n-         \n-         (define (render-rand x y width height)\n-           (render-box "green" x y width height))\n-\n-         (define (render-n n i)\n-           (break)\n-           (if (< i n)\n-               (begin\n-                 (render-rand (rand-int)\n-                              (rand-int)\n-                              (rand-int)\n-                              (rand-int))\n-                 (render-n n (+ i 1)))))\n-         \n+         ;;(timer-start)\n          (render-clear)\n-         (render-n 50 0)\n+         (render-n 500 0)\n+         ;;(timer-end)\n \n          (next)\n          (render))\ndiff --git a/web/debugger/runtime.js b/web/debugger/runtime.js\nindex 571ab9c..54bef17 100644\n--- a/web/debugger/runtime.js\n+++ b/web/debugger/runtime.js\n@@ -1,17 +1,17 @@\n var type = (function(obj){\n-return (function() {if(number_p_(obj)) {return ((function() {return string_dash__gt_symbol("number");\n+return (function() {if(number_p_(obj)) {return ((function() {return "\\uFDD1number";\n }))();\n-} else {return (function() {if(boolean_p_(obj)) {return ((function() {return string_dash__gt_symbol("boolean");\n+} else {return (function() {if(boolean_p_(obj)) {return ((function() {return "\\uFDD1boolean";\n }))();\n-} else {return (function() {if(string_p_(obj)) {return ((function() {return string_dash__gt_symbol("string");\n+} else {return (function() {if(string_p_(obj)) {return ((function() {return "\\uFDD1string";\n }))();\n-} else {return (function() {if(null_p_(obj)) {return ((function() {return string_dash__gt_symbol("null");\n+} else {return (function() {if(null_p_(obj)) {return ((function() {return "\\uFDD1null";\n }))();\n-} else {return (function() {if(list_p_(obj)) {return ((function() {return string_dash__gt_symbol("list");\n+} else {return (function() {if(list_p_(obj)) {return ((function() {return "\\uFDD1list";\n }))();\n-} else {return (function() {if(vector_p_(obj)) {return ((function() {return string_dash__gt_symbol("vector");\n+} else {return (function() {if(vector_p_(obj)) {return ((function() {return "\\uFDD1vector";\n }))();\n-} else {return (function() {if(dict_p_(obj)) {return ((function() {return string_dash__gt_symbol("dict");\n+} else {return (function() {if(dict_p_(obj)) {return ((function() {return "\\uFDD1dict";\n }))();\n } else {return false;\n }})()\n@@ -30,28 +30,28 @@ return (function() {if(number_p_(obj)) {return ((function() {return string_dash_\n ;\n });\n var number_p_ = (function(obj){\n-return eq_p_(typeof obj,"number");\n+return _eq__eq_(typeof obj,"number");\n });\n var string_p_ = (function(obj){\n-return eq_p_(typeof obj,"string");\n+return (_eq__eq_(typeof obj,"string") && not(_eq__eq_(obj[0],"\\uFDD1")));\n });\n var symbol_p_ = (function(obj){\n-return (!!obj && obj.str !== undefined && obj.symbol !== undefined);\n+return (_eq__eq_(typeof obj,"string") && _eq__eq_(obj[0],"\\uFDD1"));\n });\n var boolean_p_ = (function(obj){\n return (eq_p_(obj,true) || eq_p_(obj,false));\n });\n var null_p_ = (function(obj){\n-return (!!obj && not(eq_p_(obj.length,undefined)) && eq_p_(obj.length,1) && eq_p_(vector_dash_ref(obj,0),null));\n+return (!!obj && not(eq_p_(obj["length"],undefined)) && eq_p_(obj["length"],1) && eq_p_(vector_dash_ref(obj,0),null));\n });\n var list_p_ = (function(obj){\n-return (!!obj && not(eq_p_(obj.length,undefined)) && not(eq_p_(obj.list,undefined)));\n+return (!!obj && not(eq_p_(obj["length"],undefined)) && not(eq_p_(obj["list"],undefined)));\n });\n var vector_p_ = (function(obj){\n-return (not(list_p_(obj)) && not(null_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && not(eq_p_(obj.length,undefined)));\n+return (not(list_p_(obj)) && not(null_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && not(eq_p_(obj["length"],undefined)));\n });\n var dict_p_ = (function(obj){\n-return (not(symbol_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && eq_p_(obj.length,undefined));\n+return (not(symbol_p_(obj)) && !!obj && eq_p_(typeof obj,"object") && eq_p_(obj["length"],undefined));\n });\n var function_p_ = (function(obj){\n return eq_p_(typeof obj,"function");\n@@ -70,30 +70,17 @@ return (acc + (function() {if(string_p_(el)) {return el;\n });\n var string_dash__gt_symbol = (function(str){\n return ((function() {var o1 = (function(s){\n-s = s.replace(RegExp("-","g"),"_dash_");\n-s = s.replace(RegExp("\\\\?","g"),"_p_");\n-s = s.replace(RegExp("\\\\!","g"),"_excl_");\n-s = s.replace(RegExp(">","g"),"_gt_");\n-s = s.replace(RegExp("<","g"),"_lt_");\n-s = s.replace(RegExp("%","g"),"_per_");\n-s = s.replace(RegExp("=","g"),"_eq_");\n-return {str:s, symbol:true}});\n+return ("\\uFDD1" + s);\n+});\n var o2 = str;\n return o1(o2);\n }))();\n });\n var symbol_dash__gt_string = (function(sym){\n return ((function() {var o3 = (function(s){\n-s = s.replace(RegExp("_dash_","g"),"-");\n-s = s.replace(RegExp("_p_","g"),"?");\n-s = s.replace(RegExp("_excl_","g"),"!");\n-s = s.replace(RegExp("_gt_","g"),">");\n-s = s.replace(RegExp("_lt_","g"),"<");\n-s = s.replace(RegExp("_per_","g"),"%");\n-s = s.replace(RegExp("_eq_","g"),"=");\n return s;\n });\n-var o4 = sym.str;\n+var o4 = sym["substring"](1);\n return o3(o4);\n }))();\n });\n@@ -289,19 +276,19 @@ return trampoline(loop(o18));\n }))();\n });\n var vector_dash_length = (function(vec){\n-return vec.length;\n+return vec["length"];\n });\n var list_dash__gt_vector = (function(lst){\n var res = [];\n for_dash_each((function(el){\n-return res.push(el);\n+return res["push"](el);\n }),lst);\n return res;\n });\n var vector_dash_map = (function(func,vec){\n var res = [];\n ((function() {var loop = (function(i){\n-return (function() {if((i < vec.length)) {return ((function() {res.push(func(vector_dash_ref(vec,i)));\n+return (function() {if((i < vec["length"])) {return ((function() {res["push"](func(vector_dash_ref(vec,i)));\n return vector("__tco_call",(function() {return loop((i + 1));\n }));\n }))();\n@@ -316,7 +303,7 @@ return res;\n });\n var vector_dash_for_dash_each = (function(func,vec){\n return ((function() {var loop = (function(i){\n-return (function() {if((i < vec.length)) {return ((function() {func(vector_dash_ref(vec,i));\n+return (function() {if((i < vec["length"])) {return ((function() {func(vector_dash_ref(vec,i));\n return vector("__tco_call",(function() {return loop((i + 1));\n }));\n }))();\n@@ -364,9 +351,9 @@ return trampoline(loop(o23));\n return res;\n });\n var dict_dash_put_excl_ = (function(dct,k,v){\n-return dct[k.str] = v});\n+return dct[k.substring(1)] = v});\n var dict_dash_ref = (function(dct,k){\n-return dct[k.str]});\n+return dct[k.substring(1)]});\n var dict_dash_map = (function(func,dct){\n var res = dict();\n ((function() {var loop = (function(lst){\n@@ -457,9 +444,7 @@ var not = (function(obj){\n return (typeof obj !== \'number\' && !obj);\n });\n var _eq__eq_ = (function(obj1,obj2){\n-return (function() {if((symbol_p_(obj1) && symbol_p_(obj2))) {return obj1.str === obj2.str} else {return obj1 === obj2}})()\n-;\n-});\n+return obj1 === obj2});\n var _eq_ = (function(obj1,obj2){\n return (function() {if((list_p_(obj1) && list_p_(obj2))) {return ((function() {return ((function() {var loop = (function(lst1,lst2){\n var n1 = null_p_(lst1);\n@@ -484,9 +469,9 @@ return loop(o37,o38);\n }))();\n }))();\n } else {return (function() {if((vector_p_(obj1) && vector_p_(obj2))) {return ((function() {return ((function() {var loop = (function(i){\n-return (function() {if(((i < obj1.length) && (i < obj2.length))) {return ((function() {return true;\n+return (function() {if(((i < obj1["length"]) && (i < obj2["length"]))) {return ((function() {return true;\n }))();\n-} else {return (function() {if(((i < obj1.length) || (i < obj2.length))) {return ((function() {return false;\n+} else {return (function() {if(((i < obj1["length"]) || (i < obj2["length"]))) {return ((function() {return false;\n }))();\n } else {return ((function() {return (function() {if(equal_p_(vector_dash_ref(obj1,i),vector_dash_ref(obj2,i))) {return loop((i + 1));\n } else {return false;\n@@ -533,23 +518,17 @@ return o40(o41,o42);\n });\n var eq_p_ = _eq__eq_;\n var equal_p_ = _eq_;\n-var print = (function(msg){\n-console.log(msg);\n-});\n-var println = (function(msg){\n-console.log(msg);\n-});\n var pp = (function(obj){\n return println(inspect(obj));\n });\n var _per_inspect_dash_non_dash_sequence = (function(obj){\n return (function() {if(number_p_(obj)) {return ((function() {return ("" + obj);\n }))();\n-} else {return (function() {if(string_p_(obj)) {return ((function() {obj = obj.replace(RegExp("\\\\\\\\","g"),"\\\\\\\\");\n-obj = obj.replace(RegExp("\\n","g"),"\\\\n");\n-obj = obj.replace(RegExp("\\r","g"),"\\\\r");\n-obj = obj.replace(RegExp("\\t","g"),"\\\\t");\n-obj = obj.replace(RegExp("\\"","g"),"\\\\\\"");\n+} else {return (function() {if(string_p_(obj)) {return ((function() {obj = obj["replace"](RegExp("\\\\\\\\","g"),"\\\\\\\\");\n+obj = obj["replace"](RegExp("\\n","g"),"\\\\n");\n+obj = obj["replace"](RegExp("\\r","g"),"\\\\r");\n+obj = obj["replace"](RegExp("\\t","g"),"\\\\t");\n+obj = obj["replace"](RegExp("\\"","g"),"\\\\\\"");\n return ("\\"" + obj + "\\"");\n }))();\n } else {return (function() {if(symbol_p_(obj)) {return ((function() {return symbol_dash__gt_string(obj);\ndiff --git a/web/debugger/web-vm.js b/web/debugger/web-vm.js\nindex baacdf0..d58d76e 100644\n--- a/web/debugger/web-vm.js\n+++ b/web/debugger/web-vm.js\n@@ -367,22 +367,22 @@ return not(x);\n var self_dash_evaluating_p_ = literal_p_;\n var variable_p_ = symbol_p_;\n var quoted_p_ = (function(expr){\n-return eq_p_(car(expr),string_dash__gt_symbol("quote"));\n+return eq_p_(car(expr),"\\uFDD1quote");\n });\n var assignment_p_ = (function(expr){\n-return eq_p_(car(expr),string_dash__gt_symbol("set_excl_"));\n+return eq_p_(car(expr),"\\uFDD1set!");\n });\n var definition_p_ = (function(expr){\n-return eq_p_(car(expr),string_dash__gt_symbol("define"));\n+return eq_p_(car(expr),"\\uFDD1define");\n });\n var if_p_ = (function(expr){\n-return eq_p_(car(expr),string_dash__gt_symbol("if"));\n+return eq_p_(car(expr),"\\uFDD1if");\n });\n var lambda_p_ = (function(expr){\n-return eq_p_(car(expr),string_dash__gt_symbol("lambda"));\n+return eq_p_(car(expr),"\\uFDD1lambda");\n });\n var begin_p_ = (function(expr){\n-return eq_p_(car(expr),string_dash__gt_symbol("begin"));\n+return eq_p_(car(expr),"\\uFDD1begin");\n });\n var application_p_ = list_p_;\n var text_dash_of_dash_quotation = (function(expr){\n@@ -391,7 +391,7 @@ return cadr(expr);\n var assignment_dash_variable = cadr;\n var assignment_dash_value = caddr;\n var make_dash_lambda = (function(args,body){\n-return cons(string_dash__gt_symbol("lambda"),cons(args,body));\n+return cons("\\uFDD1lambda",cons(args,body));\n });\n var definition_dash_variable = (function(expr){\n return (function() {if(symbol_p_(cadr(expr))) {return cadr(expr);\n@@ -434,9 +434,9 @@ var always_dash_should_dash_break = false;\n var should_dash_break = false;\n var breakpoint = (function(exp){\n return (function() {if((always_dash_should_dash_break || should_dash_break)) {return ((function() {should_dash_break = false;\n-return list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("exp"),list(string_dash__gt_symbol("const"),exp)),list(string_dash__gt_symbol("break")));\n+return list(list("\\uFDD1assign","\\uFDD1exp",list("\\uFDD1const",exp)),list("\\uFDD1break"));\n }))();\n-} else {return list(list(string_dash__gt_symbol("nop")));\n+} else {return list(list("\\uFDD1nop"));\n }})()\n ;\n });\n@@ -485,7 +485,7 @@ return append_dash_seq_dash_list(seqs);\n var preserving = (function(regs,seq1,seq2){\n return (function() {if(null_p_(regs)) {return append_dash_instruction_dash_sequences(seq1,seq2);\n } else {return ((function() {var o1 = (function(first_dash_reg){\n-return (function() {if((needs_dash_register_p_(seq2,first_dash_reg) && modifies_dash_register_p_(seq1,first_dash_reg))) {return preserving(cdr(regs),make_dash_instruction_dash_sequence(list_dash_union(list(first_dash_reg),registers_dash_needed(seq1)),list_dash_difference(registers_dash_modified(seq1),list(first_dash_reg)),list_dash_append(list(list(string_dash__gt_symbol("save"),first_dash_reg)),list_dash_append(statements(seq1),list(list(string_dash__gt_symbol("restore"),first_dash_reg))))),seq2);\n+return (function() {if((needs_dash_register_p_(seq2,first_dash_reg) && modifies_dash_register_p_(seq1,first_dash_reg))) {return preserving(cdr(regs),make_dash_instruction_dash_sequence(list_dash_union(list(first_dash_reg),registers_dash_needed(seq1)),list_dash_difference(registers_dash_modified(seq1),list(first_dash_reg)),list_dash_append(list(list("\\uFDD1save",first_dash_reg)),list_dash_append(statements(seq1),list(list("\\uFDD1restore",first_dash_reg))))),seq2);\n } else {return preserving(cdr(regs),seq1,seq2);\n }})()\n ;\n@@ -571,45 +571,45 @@ var o10 = last_dash_frame(global_dash_environment);\n return o9(o10);\n }))();\n });\n-var primitive_dash_procedures = dict(string_dash__gt_symbol("car"),car,string_dash__gt_symbol("cdr"),cdr,string_dash__gt_symbol("cons"),cons,string_dash__gt_symbol("list"),list,string_dash__gt_symbol("null_p_"),null_p_,string_dash__gt_symbol("pp"),pp,string_dash__gt_symbol("+"),(function(x,y){\n+var primitive_dash_procedures = dict("\\uFDD1car",car,"\\uFDD1cdr",cdr,"\\uFDD1cons",cons,"\\uFDD1list",list,"\\uFDD1null?",null_p_,"\\uFDD1pp",pp,"\\uFDD1+",(function(x,y){\n return (x + y);\n-}),string_dash__gt_symbol("_dash_"),(function(x,y){\n+}),"\\uFDD1-",(function(x,y){\n return (x - y);\n-}),string_dash__gt_symbol("*"),(function(x,y){\n+}),"\\uFDD1*",(function(x,y){\n return (x * y);\n-}),string_dash__gt_symbol("_gt_"),(function(x,y){\n+}),"\\uFDD1>",(function(x,y){\n return (x > y);\n-}),string_dash__gt_symbol("_lt_"),(function(x,y){\n+}),"\\uFDD1<",(function(x,y){\n return (x < y);\n-}),string_dash__gt_symbol("_eq__eq_"),_eq__eq_);\n+}),"\\uFDD1==",_eq__eq_);\n var primitive_dash_procedure_dash_names = (function() {return keys(primitive_dash_procedures);\n });\n var primitive_dash_procedure_dash_objects = (function() {return map(make_dash_primitive_dash_procedure,vals(primitive_dash_procedures));\n });\n var make_dash_primitive_dash_procedure = (function(proc){\n-return list(string_dash__gt_symbol("primitive"),proc);\n+return list("\\uFDD1primitive",proc);\n });\n var primitive_dash_procedure_p_ = (function(proc){\n-return eq_p_(car(proc),string_dash__gt_symbol("primitive"));\n+return eq_p_(car(proc),"\\uFDD1primitive");\n });\n var primitive_dash_implementation = cadr;\n var apply_dash_primitive_dash_procedure = (function(proc,args){\n return apply(primitive_dash_implementation(proc),args);\n });\n var make_dash_compiled_dash_procedure = (function(entry,env){\n-return list(string_dash__gt_symbol("compiled_dash_procedure"),entry,env);\n+return list("\\uFDD1compiled-procedure",entry,env);\n });\n var compiled_dash_procedure_p_ = (function(proc){\n-return eq_p_(car(proc),string_dash__gt_symbol("compiled_dash_procedure"));\n+return eq_p_(car(proc),"\\uFDD1compiled-procedure");\n });\n var compiled_dash_procedure_dash_entry = cadr;\n var compiled_dash_procedure_dash_env = caddr;\n var compile_dash_linkage = (function(linkage){\n-return (function() {if(eq_p_(linkage,string_dash__gt_symbol("return"))) {return ((function() {return make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("continue")),_emptylst,list(list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("continue")))));\n+return (function() {if(eq_p_(linkage,"\\uFDD1return")) {return ((function() {return make_dash_instruction_dash_sequence(list("\\uFDD1continue"),_emptylst,list(list("\\uFDD1goto",list("\\uFDD1reg","\\uFDD1continue"))));\n }))();\n-} else {return (function() {if(eq_p_(linkage,string_dash__gt_symbol("next"))) {return ((function() {return empty_dash_instruction_dash_sequence();\n+} else {return (function() {if(eq_p_(linkage,"\\uFDD1next")) {return ((function() {return empty_dash_instruction_dash_sequence();\n }))();\n-} else {return ((function() {return make_dash_instruction_dash_sequence(_emptylst,_emptylst,list(list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("label"),linkage))));\n+} else {return ((function() {return make_dash_instruction_dash_sequence(_emptylst,_emptylst,list(list("\\uFDD1goto",list("\\uFDD1label",linkage))));\n }))();\n }})()\n ;\n@@ -617,7 +617,7 @@ return (function() {if(eq_p_(linkage,string_dash__gt_symbol("return"))) {return\n ;\n });\n var end_dash_with_dash_linkage = (function(linkage,instruction_dash_sequence){\n-return preserving(list(string_dash__gt_symbol("continue")),instruction_dash_sequence,compile_dash_linkage(linkage));\n+return preserving(list("\\uFDD1continue"),instruction_dash_sequence,compile_dash_linkage(linkage));\n });\n var compile_dash_self_dash_evaluating = (function(exp,target,linkage){\n return end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(_emptylst,list(target),list_dash_append(((function() {var o12 = (function(o11){\n@@ -628,7 +628,7 @@ return (function() {if(vector_p_(o11)) {return vector_dash__gt_list(o11);\n });\n var o13 = breakpoint(exp);\n return o12(o13);\n-}))(),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("const"),exp))))));\n+}))(),list(list("\\uFDD1assign",target,list("\\uFDD1const",exp))))));\n });\n var compile_dash_quoted = (function(exp,target,linkage){\n return end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(_emptylst,list(target),list_dash_append(((function() {var o15 = (function(o14){\n@@ -639,10 +639,10 @@ return (function() {if(vector_p_(o14)) {return vector_dash__gt_list(o14);\n });\n var o16 = breakpoint(exp);\n return o15(o16);\n-}))(),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("const"),text_dash_of_dash_quotation(exp)))))));\n+}))(),list(list("\\uFDD1assign",target,list("\\uFDD1const",text_dash_of_dash_quotation(exp)))))));\n });\n var compile_dash_variable = (function(exp,target,linkage){\n-return end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env")),list(target),list_dash_append(((function() {var o18 = (function(o17){\n+return end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(list("\\uFDD1env"),list(target),list_dash_append(((function() {var o18 = (function(o17){\n return (function() {if(vector_p_(o17)) {return vector_dash__gt_list(o17);\n } else {return o17;\n }})()\n@@ -650,11 +650,11 @@ return (function() {if(vector_p_(o17)) {return vector_dash__gt_list(o17);\n });\n var o19 = breakpoint(exp);\n return o18(o19);\n-}))(),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("op"),string_dash__gt_symbol("lookup_dash_variable_dash_value")),list(string_dash__gt_symbol("const"),exp),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env")))))));\n+}))(),list(list("\\uFDD1assign",target,list("\\uFDD1op","\\uFDD1lookup-variable-value"),list("\\uFDD1const",exp),list("\\uFDD1reg","\\uFDD1env"))))));\n });\n var compile_dash_assignment = (function(exp,target,linkage){\n return ((function() {var o20 = (function(_var_,value_dash_code){\n-return end_dash_with_dash_linkage(linkage,preserving(list(string_dash__gt_symbol("env")),value_dash_code,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("val")),list(target),list_dash_append(((function() {var o24 = (function(o23){\n+return end_dash_with_dash_linkage(linkage,preserving(list("\\uFDD1env"),value_dash_code,make_dash_instruction_dash_sequence(list("\\uFDD1env","\\uFDD1val"),list(target),list_dash_append(((function() {var o24 = (function(o23){\n return (function() {if(vector_p_(o23)) {return vector_dash__gt_list(o23);\n } else {return o23;\n }})()\n@@ -662,16 +662,16 @@ return (function() {if(vector_p_(o23)) {return vector_dash__gt_list(o23);\n });\n var o25 = breakpoint(exp);\n return o24(o25);\n-}))(),list(list(string_dash__gt_symbol("perform"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("set_dash_variable_dash_value_excl_")),list(string_dash__gt_symbol("const"),_var_),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env"))),list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("const"),string_dash__gt_symbol("ok"))))))));\n+}))(),list(list("\\uFDD1perform",list("\\uFDD1op","\\uFDD1set-variable-value!"),list("\\uFDD1const",_var_),list("\\uFDD1reg","\\uFDD1val"),list("\\uFDD1reg","\\uFDD1env")),list("\\uFDD1assign",target,list("\\uFDD1const","\\uFDD1ok")))))));\n });\n var o21 = assignment_dash_variable(exp);\n-var o22 = compile(assignment_dash_value(exp),string_dash__gt_symbol("val"),string_dash__gt_symbol("next"));\n+var o22 = compile(assignment_dash_value(exp),"\\uFDD1val","\\uFDD1next");\n return o20(o21,o22);\n }))();\n });\n var compile_dash_definition = (function(exp,target,linkage){\n return ((function() {var o26 = (function(_var_,value_dash_code){\n-return end_dash_with_dash_linkage(linkage,preserving(list(string_dash__gt_symbol("env")),value_dash_code,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("val")),list(target),list_dash_append(((function() {var o30 = (function(o29){\n+return end_dash_with_dash_linkage(linkage,preserving(list("\\uFDD1env"),value_dash_code,make_dash_instruction_dash_sequence(list("\\uFDD1env","\\uFDD1val"),list(target),list_dash_append(((function() {var o30 = (function(o29){\n return (function() {if(vector_p_(o29)) {return vector_dash__gt_list(o29);\n } else {return o29;\n }})()\n@@ -679,16 +679,16 @@ return (function() {if(vector_p_(o29)) {return vector_dash__gt_list(o29);\n });\n var o31 = breakpoint(exp);\n return o30(o31);\n-}))(),list(list(string_dash__gt_symbol("perform"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("define_dash_variable_excl_")),list(string_dash__gt_symbol("const"),_var_),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env"))),list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("const"),string_dash__gt_symbol("ok"))))))));\n+}))(),list(list("\\uFDD1perform",list("\\uFDD1op","\\uFDD1define-variable!"),list("\\uFDD1const",_var_),list("\\uFDD1reg","\\uFDD1val"),list("\\uFDD1reg","\\uFDD1env")),list("\\uFDD1assign",target,list("\\uFDD1const","\\uFDD1ok")))))));\n });\n var o27 = definition_dash_variable(exp);\n-var o28 = compile(definition_dash_value(exp),string_dash__gt_symbol("val"),string_dash__gt_symbol("next"));\n+var o28 = compile(definition_dash_value(exp),"\\uFDD1val","\\uFDD1next");\n return o26(o27,o28);\n }))();\n });\n var compile_dash_if = (function(exp,target,linkage){\n return ((function() {var o32 = (function(t_dash_branch,f_dash_branch,after_dash_if,consequent_dash_linkage,p_dash_code,c_dash_code,a_dash_code){\n-return preserving(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("continue")),p_dash_code,append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("val")),_emptylst,list_dash_append(((function() {var o41 = (function(o40){\n+return preserving(list("\\uFDD1env","\\uFDD1continue"),p_dash_code,append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(list("\\uFDD1val"),_emptylst,list_dash_append(((function() {var o41 = (function(o40){\n return (function() {if(vector_p_(o40)) {return vector_dash__gt_list(o40);\n } else {return o40;\n }})()\n@@ -696,16 +696,16 @@ return (function() {if(vector_p_(o40)) {return vector_dash__gt_list(o40);\n });\n var o42 = breakpoint(exp);\n return o41(o42);\n-}))(),list(list(string_dash__gt_symbol("test"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("false_p_")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val"))),list(string_dash__gt_symbol("branch"),list(string_dash__gt_symbol("label"),f_dash_branch))))),parallel_dash_instruction_dash_sequences(append_dash_instruction_dash_sequences(t_dash_branch,c_dash_code),append_dash_instruction_dash_sequences(f_dash_branch,a_dash_code)),after_dash_if));\n+}))(),list(list("\\uFDD1test",list("\\uFDD1op","\\uFDD1false?"),list("\\uFDD1reg","\\uFDD1val")),list("\\uFDD1branch",list("\\uFDD1label",f_dash_branch))))),parallel_dash_instruction_dash_sequences(append_dash_instruction_dash_sequences(t_dash_branch,c_dash_code),append_dash_instruction_dash_sequences(f_dash_branch,a_dash_code)),after_dash_if));\n });\n-var o33 = make_dash_label(string_dash__gt_symbol("true_dash_branch"));\n-var o34 = make_dash_label(string_dash__gt_symbol("false_dash_branch"));\n-var o35 = make_dash_label(string_dash__gt_symbol("after_dash_if"));\n-var o36 = (function() {if(eq_p_(linkage,string_dash__gt_symbol("next"))) {return o35;\n+var o33 = make_dash_label("\\uFDD1true-branch");\n+var o34 = make_dash_label("\\uFDD1false-branch");\n+var o35 = make_dash_label("\\uFDD1after-if");\n+var o36 = (function() {if(eq_p_(linkage,"\\uFDD1next")) {return o35;\n } else {return linkage;\n }})()\n ;\n-var o37 = compile(if_dash_predicate(exp),string_dash__gt_symbol("val"),string_dash__gt_symbol("next"));\n+var o37 = compile(if_dash_predicate(exp),"\\uFDD1val","\\uFDD1next");\n var o38 = compile(if_dash_consequent(exp),target,o36);\n var o39 = compile(if_dash_alternative(exp),target,linkage);\n return o32(o33,o34,o35,o36,o37,o38,o39);\n@@ -713,13 +713,13 @@ return o32(o33,o34,o35,o36,o37,o38,o39);\n });\n var compile_dash_sequence = (function(seq,target,linkage){\n return (function() {if(last_dash_exp_p_(seq)) {return compile(first_dash_exp(seq),target,linkage);\n-} else {return preserving(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("continue")),compile(first_dash_exp(seq),target,string_dash__gt_symbol("next")),compile_dash_sequence(rest_dash_exps(seq),target,linkage));\n+} else {return preserving(list("\\uFDD1env","\\uFDD1continue"),compile(first_dash_exp(seq),target,"\\uFDD1next"),compile_dash_sequence(rest_dash_exps(seq),target,linkage));\n }})()\n ;\n });\n var compile_dash_lambda = (function(exp,target,linkage){\n return ((function() {var o43 = (function(proc_dash_entry,after_dash_lambda,lambda_dash_linkage){\n-return append_dash_instruction_dash_sequences(tack_dash_on_dash_instruction_dash_sequence(end_dash_with_dash_linkage(lambda_dash_linkage,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env")),list(target),list_dash_append(((function() {var o48 = (function(o47){\n+return append_dash_instruction_dash_sequences(tack_dash_on_dash_instruction_dash_sequence(end_dash_with_dash_linkage(lambda_dash_linkage,make_dash_instruction_dash_sequence(list("\\uFDD1env"),list(target),list_dash_append(((function() {var o48 = (function(o47){\n return (function() {if(vector_p_(o47)) {return vector_dash__gt_list(o47);\n } else {return o47;\n }})()\n@@ -727,11 +727,11 @@ return (function() {if(vector_p_(o47)) {return vector_dash__gt_list(o47);\n });\n var o49 = breakpoint(exp);\n return o48(o49);\n-}))(),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("op"),string_dash__gt_symbol("make_dash_compiled_dash_procedure")),list(string_dash__gt_symbol("label"),proc_dash_entry),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env"))))))),compile_dash_lambda_dash_body(exp,proc_dash_entry)),after_dash_lambda);\n+}))(),list(list("\\uFDD1assign",target,list("\\uFDD1op","\\uFDD1make-compiled-procedure"),list("\\uFDD1label",proc_dash_entry),list("\\uFDD1reg","\\uFDD1env")))))),compile_dash_lambda_dash_body(exp,proc_dash_entry)),after_dash_lambda);\n });\n-var o44 = make_dash_label(string_dash__gt_symbol("entry"));\n-var o45 = make_dash_label(string_dash__gt_symbol("after_dash_lambda"));\n-var o46 = (function() {if(eq_p_(linkage,string_dash__gt_symbol("next"))) {return o45;\n+var o44 = make_dash_label("\\uFDD1entry");\n+var o45 = make_dash_label("\\uFDD1after-lambda");\n+var o46 = (function() {if(eq_p_(linkage,"\\uFDD1next")) {return o45;\n } else {return linkage;\n }})()\n ;\n@@ -740,7 +740,7 @@ return o43(o44,o45,o46);\n });\n var compile_dash_lambda_dash_body = (function(exp,proc_dash_entry){\n return ((function() {var o50 = (function(formals){\n-return append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("proc"),string_dash__gt_symbol("arg1")),list(string_dash__gt_symbol("env")),list(proc_dash_entry,list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("env"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("compiled_dash_procedure_dash_env")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("env"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("extend_dash_environment")),list(string_dash__gt_symbol("const"),formals),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("arg1")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env"))))),compile_dash_sequence(lambda_dash_body(exp),string_dash__gt_symbol("val"),string_dash__gt_symbol("return")));\n+return append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(list("\\uFDD1env","\\uFDD1proc","\\uFDD1arg1"),list("\\uFDD1env"),list(proc_dash_entry,list("\\uFDD1assign","\\uFDD1env",list("\\uFDD1op","\\uFDD1compiled-procedure-env"),list("\\uFDD1reg","\\uFDD1proc")),list("\\uFDD1assign","\\uFDD1env",list("\\uFDD1op","\\uFDD1extend-environment"),list("\\uFDD1const",formals),list("\\uFDD1reg","\\uFDD1arg1"),list("\\uFDD1reg","\\uFDD1env")))),compile_dash_sequence(lambda_dash_body(exp),"\\uFDD1val","\\uFDD1return"));\n });\n var o51 = lambda_dash_parameters(exp);\n return o50(o51);\n@@ -748,26 +748,26 @@ return o50(o51);\n });\n var compile_dash_application = (function(exp,target,linkage){\n return ((function() {var o52 = (function(bp,proc_dash_code,operand_dash_codes){\n-return preserving(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("continue")),proc_dash_code,preserving(list(string_dash__gt_symbol("proc"),string_dash__gt_symbol("continue")),construct_dash_arglist(operand_dash_codes),append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(_emptylst,_emptylst,bp),compile_dash_procedure_dash_call(exp,target,linkage))));\n+return preserving(list("\\uFDD1env","\\uFDD1continue"),proc_dash_code,preserving(list("\\uFDD1proc","\\uFDD1continue"),construct_dash_arglist(operand_dash_codes),append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(_emptylst,_emptylst,bp),compile_dash_procedure_dash_call(exp,target,linkage))));\n });\n var o53 = breakpoint(exp);\n-var o54 = compile(operator(exp),string_dash__gt_symbol("proc"),string_dash__gt_symbol("next"));\n+var o54 = compile(operator(exp),"\\uFDD1proc","\\uFDD1next");\n var o55 = map((function(operand){\n-return compile(operand,string_dash__gt_symbol("val"),string_dash__gt_symbol("next"));\n+return compile(operand,"\\uFDD1val","\\uFDD1next");\n }),operands(exp));\n return o52(o53,o54,o55);\n }))();\n });\n var construct_dash_arglist = (function(operand_dash_codes){\n return ((function() {var o56 = (function(operand_dash_codes){\n-return (function() {if(null_p_(operand_dash_codes)) {return make_dash_instruction_dash_sequence(_emptylst,list(string_dash__gt_symbol("arg1")),list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("arg1"),list(string_dash__gt_symbol("const"),_emptylst))));\n+return (function() {if(null_p_(operand_dash_codes)) {return make_dash_instruction_dash_sequence(_emptylst,list("\\uFDD1arg1"),list(list("\\uFDD1assign","\\uFDD1arg1",list("\\uFDD1const",_emptylst))));\n } else {return ((function() {var o58 = (function(code_dash_to_dash_get_dash_last_dash_arg){\n return (function() {if(null_p_(cdr(operand_dash_codes))) {return code_dash_to_dash_get_dash_last_dash_arg;\n-} else {return preserving(list(string_dash__gt_symbol("env")),code_dash_to_dash_get_dash_last_dash_arg,code_dash_to_dash_get_dash_rest_dash_args(cdr(operand_dash_codes)));\n+} else {return preserving(list("\\uFDD1env"),code_dash_to_dash_get_dash_last_dash_arg,code_dash_to_dash_get_dash_rest_dash_args(cdr(operand_dash_codes)));\n }})()\n ;\n });\n-var o59 = append_dash_instruction_dash_sequences(car(operand_dash_codes),make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("val")),list(string_dash__gt_symbol("arg1")),list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("arg1"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("list")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val"))))));\n+var o59 = append_dash_instruction_dash_sequences(car(operand_dash_codes),make_dash_instruction_dash_sequence(list("\\uFDD1val"),list("\\uFDD1arg1"),list(list("\\uFDD1assign","\\uFDD1arg1",list("\\uFDD1op","\\uFDD1list"),list("\\uFDD1reg","\\uFDD1val")))));\n return o58(o59);\n }))();\n }})()\n@@ -780,22 +780,22 @@ return o56(o57);\n var code_dash_to_dash_get_dash_rest_dash_args = (function(operand_dash_codes){\n return ((function() {var o60 = (function(code_dash_for_dash_next_dash_arg){\n return (function() {if(null_p_(cdr(operand_dash_codes))) {return code_dash_for_dash_next_dash_arg;\n-} else {return preserving(list(string_dash__gt_symbol("env")),code_dash_for_dash_next_dash_arg,code_dash_to_dash_get_dash_rest_dash_args(cdr(operand_dash_codes)));\n+} else {return preserving(list("\\uFDD1env"),code_dash_for_dash_next_dash_arg,code_dash_to_dash_get_dash_rest_dash_args(cdr(operand_dash_codes)));\n }})()\n ;\n });\n-var o61 = preserving(list(string_dash__gt_symbol("arg1")),car(operand_dash_codes),make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("val"),string_dash__gt_symbol("arg1")),list(string_dash__gt_symbol("arg1")),list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("arg1"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("cons")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("arg1"))))));\n+var o61 = preserving(list("\\uFDD1arg1"),car(operand_dash_codes),make_dash_instruction_dash_sequence(list("\\uFDD1val","\\uFDD1arg1"),list("\\uFDD1arg1"),list(list("\\uFDD1assign","\\uFDD1arg1",list("\\uFDD1op","\\uFDD1cons"),list("\\uFDD1reg","\\uFDD1val"),list("\\uFDD1reg","\\uFDD1arg1")))));\n return o60(o61);\n }))();\n });\n var compile_dash_procedure_dash_call = (function(exp,target,linkage){\n return ((function() {var o62 = (function(primitive_dash_branch,compiled_dash_branch,after_dash_call,compiled_dash_linkage){\n-return append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc")),_emptylst,list(list(string_dash__gt_symbol("test"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("primitive_dash_procedure_p_")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("branch"),list(string_dash__gt_symbol("label"),primitive_dash_branch)))),parallel_dash_instruction_dash_sequences(append_dash_instruction_dash_sequences(compiled_dash_branch,compile_dash_proc_dash_app1(target,compiled_dash_linkage)),append_dash_instruction_dash_sequences(primitive_dash_branch,end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc"),string_dash__gt_symbol("arg1")),list(target),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("op"),string_dash__gt_symbol("apply_dash_primitive_dash_procedure")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("arg1")))))))),after_dash_call);\n+return append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(list("\\uFDD1proc"),_emptylst,list(list("\\uFDD1test",list("\\uFDD1op","\\uFDD1primitive-procedure?"),list("\\uFDD1reg","\\uFDD1proc")),list("\\uFDD1branch",list("\\uFDD1label",primitive_dash_branch)))),parallel_dash_instruction_dash_sequences(append_dash_instruction_dash_sequences(compiled_dash_branch,compile_dash_proc_dash_app1(target,compiled_dash_linkage)),append_dash_instruction_dash_sequences(primitive_dash_branch,end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(list("\\uFDD1proc","\\uFDD1arg1"),list(target),list(list("\\uFDD1assign",target,list("\\uFDD1op","\\uFDD1apply-primitive-procedure"),list("\\uFDD1reg","\\uFDD1proc"),list("\\uFDD1reg","\\uFDD1arg1"))))))),after_dash_call);\n });\n-var o63 = make_dash_label(string_dash__gt_symbol("primitive_dash_branch"));\n-var o64 = make_dash_label(string_dash__gt_symbol("compiled_dash_branch"));\n-var o65 = make_dash_label(string_dash__gt_symbol("after_dash_call"));\n-var o66 = (function() {if(eq_p_(linkage,string_dash__gt_symbol("next"))) {return o65;\n+var o63 = make_dash_label("\\uFDD1primitive-branch");\n+var o64 = make_dash_label("\\uFDD1compiled-branch");\n+var o65 = make_dash_label("\\uFDD1after-call");\n+var o66 = (function() {if(eq_p_(linkage,"\\uFDD1next")) {return o65;\n } else {return linkage;\n }})()\n ;\n@@ -803,13 +803,13 @@ return o62(o63,o64,o65,o66);\n }))();\n });\n var compile_dash_proc_dash_app1 = (function(target,linkage){\n-return (function() {if((eq_p_(target,string_dash__gt_symbol("val")) && not(eq_p_(linkage,string_dash__gt_symbol("return"))))) {return ((function() {return make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc")),all_dash_regs,list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("continue"),list(string_dash__gt_symbol("label"),linkage)),list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("val"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("compiled_dash_procedure_dash_entry")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")))));\n+return (function() {if((eq_p_(target,"\\uFDD1val") && not(eq_p_(linkage,"\\uFDD1return")))) {return ((function() {return make_dash_instruction_dash_sequence(list("\\uFDD1proc"),all_dash_regs,list(list("\\uFDD1assign","\\uFDD1continue",list("\\uFDD1label",linkage)),list("\\uFDD1assign","\\uFDD1val",list("\\uFDD1op","\\uFDD1compiled-procedure-entry"),list("\\uFDD1reg","\\uFDD1proc")),list("\\uFDD1goto",list("\\uFDD1reg","\\uFDD1val"))));\n }))();\n-} else {return (function() {if((not(eq_p_(target,string_dash__gt_symbol("val"))) && not(eq_p_(linkage,string_dash__gt_symbol("return"))))) {return ((function() {return make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc")),all_dash_regs,list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("continue"),list(string_dash__gt_symbol("label"),proc_dash_return)),list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("val"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("compiled_dash_procedure_dash_entry")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val"))),proc_dash_return,list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val"))),list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("label"),linkage))));\n+} else {return (function() {if((not(eq_p_(target,"\\uFDD1val")) && not(eq_p_(linkage,"\\uFDD1return")))) {return ((function() {return make_dash_instruction_dash_sequence(list("\\uFDD1proc"),all_dash_regs,list(list("\\uFDD1assign","\\uFDD1continue",list("\\uFDD1label",proc_dash_return)),list("\\uFDD1assign","\\uFDD1val",list("\\uFDD1op","\\uFDD1compiled-procedure-entry"),list("\\uFDD1reg","\\uFDD1proc")),list("\\uFDD1goto",list("\\uFDD1reg","\\uFDD1val")),proc_dash_return,list("\\uFDD1assign",target,list("\\uFDD1reg","\\uFDD1val")),list("\\uFDD1goto",list("\\uFDD1label",linkage))));\n }))();\n-} else {return (function() {if((eq_p_(target,string_dash__gt_symbol("val")) && eq_p_(linkage,string_dash__gt_symbol("return")))) {return ((function() {return make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc"),string_dash__gt_symbol("continue")),all_dash_regs,list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("val"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("compiled_dash_procedure_dash_entry")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")))));\n+} else {return (function() {if((eq_p_(target,"\\uFDD1val") && eq_p_(linkage,"\\uFDD1return"))) {return ((function() {return make_dash_instruction_dash_sequence(list("\\uFDD1proc","\\uFDD1continue"),all_dash_regs,list(list("\\uFDD1assign","\\uFDD1val",list("\\uFDD1op","\\uFDD1compiled-procedure-entry"),list("\\uFDD1reg","\\uFDD1proc")),list("\\uFDD1goto",list("\\uFDD1reg","\\uFDD1val"))));\n }))();\n-} else {return (function() {if((not(eq_p_(target,string_dash__gt_symbol("val"))) && eq_p_(linkage,string_dash__gt_symbol("return")))) {return ((function() {throw(str("compile-proc-app1: return linkage, target not val: ",target));\n+} else {return (function() {if((not(eq_p_(target,"\\uFDD1val")) && eq_p_(linkage,"\\uFDD1return"))) {return ((function() {throw(str("compile-proc-app1: return linkage, target not val: ",target));\n }))();\n } else {return false;\n }})()\n@@ -822,12 +822,12 @@ return (function() {if((eq_p_(target,string_dash__gt_symbol("val")) && not(eq_p_\n ;\n });\n var next_p_ = (function(exp){\n-return (list_p_(exp) && eq_p_(car(exp),string_dash__gt_symbol("next")));\n+return (list_p_(exp) && eq_p_(car(exp),"\\uFDD1next"));\n });\n var compile_dash_next = (function(linkage){\n-return end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(_emptylst,_emptylst,list(list(string_dash__gt_symbol("next")))));\n+return end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(_emptylst,_emptylst,list(list("\\uFDD1next"))));\n });\n-var all_dash_regs = list(string_dash__gt_symbol("env"),string_dash__gt_symbol("proc"),string_dash__gt_symbol("val"),string_dash__gt_symbol("arg1"),string_dash__gt_symbol("continue"),string_dash__gt_symbol("exp"));\n+var all_dash_regs = list("\\uFDD1env","\\uFDD1proc","\\uFDD1val","\\uFDD1arg1","\\uFDD1continue","\\uFDD1exp");\n var compile = (function(exp,target,linkage){\n return (function() {if(next_p_(exp)) {return ((function() {return compile_dash_next(linkage);\n }))();\n@@ -847,7 +847,7 @@ return (function() {if(next_p_(exp)) {return ((function() {return compile_dash_n\n }))();\n } else {return (function() {if(begin_p_(exp)) {return ((function() {return compile_dash_sequence(begin_dash_actions(exp),target,linkage);\n }))();\n-} else {return (function() {if(application_p_(exp)) {return ((function() {return (function() {if(eq_p_(car(exp),string_dash__gt_symbol("break"))) {return ((function() {should_dash_break = true;\n+} else {return (function() {if(application_p_(exp)) {return ((function() {return (function() {if(eq_p_(car(exp),"\\uFDD1break")) {return ((function() {should_dash_break = true;\n return empty_dash_instruction_dash_sequence();\n }))();\n } else {return compile_dash_application(exp,target,linkage);\n@@ -877,12 +877,12 @@ return empty_dash_instruction_dash_sequence();\n }})()\n ;\n });\n-var runtime_dash_ops = dict(string_dash__gt_symbol("make_dash_compiled_dash_procedure"),make_dash_compiled_dash_procedure,string_dash__gt_symbol("compiled_dash_procedure_p_"),compiled_dash_procedure_p_,string_dash__gt_symbol("compiled_dash_procedure_dash_env"),compiled_dash_procedure_dash_env,string_dash__gt_symbol("compiled_dash_procedure_dash_entry"),compiled_dash_procedure_dash_entry,string_dash__gt_symbol("extend_dash_environment"),extend_dash_environment,string_dash__gt_symbol("lookup_dash_variable_dash_value"),lookup_dash_variable_dash_value,string_dash__gt_symbol("define_dash_variable_excl_"),define_dash_variable_excl_,string_dash__gt_symbol("list"),list,string_dash__gt_symbol("cons"),cons,string_dash__gt_symbol("primitive_dash_procedure_p_"),primitive_dash_procedure_p_,string_dash__gt_symbol("apply_dash_primitive_dash_procedure"),apply_dash_primitive_dash_procedure,string_dash__gt_symbol("false_p_"),false_p_,string_dash__gt_symbol("true_p_"),true_p_);\n+var runtime_dash_ops = dict("\\uFDD1make-compiled-procedure",make_dash_compiled_dash_procedure,"\\uFDD1compiled-procedure?",compiled_dash_procedure_p_,"\\uFDD1compiled-procedure-env",compiled_dash_procedure_dash_env,"\\uFDD1compiled-procedure-entry",compiled_dash_procedure_dash_entry,"\\uFDD1extend-environment",extend_dash_environment,"\\uFDD1lookup-variable-value",lookup_dash_variable_dash_value,"\\uFDD1define-variable!",define_dash_variable_excl_,"\\uFDD1list",list,"\\uFDD1cons",cons,"\\uFDD1primitive-procedure?",primitive_dash_procedure_p_,"\\uFDD1apply-primitive-procedure",apply_dash_primitive_dash_procedure,"\\uFDD1false?",false_p_,"\\uFDD1true?",true_p_);\n var global_dash_environment = setup_dash_environment();\n-module.exports = dict(string_dash__gt_symbol("compile"),(function(src){\n-return statements(compile(src,string_dash__gt_symbol("val"),string_dash__gt_symbol("next")));\n-}),string_dash__gt_symbol("ops"),runtime_dash_ops,string_dash__gt_symbol("first_dash_frame"),first_dash_frame,string_dash__gt_symbol("install_dash_primitives"),install_dash_primitives,string_dash__gt_symbol("stepping_dash_mode"),(function() {always_dash_should_dash_break = true;\n-}),string_dash__gt_symbol("global_dash_environment"),global_dash_environment);\n+module["exports"] = dict("\\uFDD1compile",(function(src){\n+return statements(compile(src,"\\uFDD1val","\\uFDD1next"));\n+}),"\\uFDD1ops",runtime_dash_ops,"\\uFDD1first-frame",first_dash_frame,"\\uFDD1install-primitives",install_dash_primitives,"\\uFDD1stepping-mode",(function() {always_dash_should_dash_break = true;\n+}),"\\uFDD1primitive-procedure?",primitive_dash_procedure_p_,"\\uFDD1compiled-procedure?",compiled_dash_procedure_p_,"\\uFDD1global-environment",global_dash_environment);\n \n \n });\n@@ -891,10 +891,10 @@ require.define("/machine.js", function (require, module, exports, __dirname, __f\n var __args = process.argv.slice(2);var fs = require("fs");var compiler = require("./compiler");var make_dash_machine = (function(regs,ops,controller){\n return ((function() {var o1 = (function(machine){\n for_dash_each((function(reg){\n-return machine.allocate_dash_register(reg);\n+return machine["allocate-register"](reg);\n }),regs);\n-machine.install_dash_operations(ops);\n-machine.install_dash_instruction_dash_sequence(assemble(controller,machine));\n+machine["install-operations"](ops);\n+machine["install-instruction-sequence"](assemble(controller,machine));\n return machine;\n });\n var o2 = make_dash_new_dash_machine();\n@@ -902,19 +902,19 @@ return o1(o2);\n }))();\n });\n var make_dash_register = (function() {return ((function() {var o3 = (function(contents){\n-return dict(string_dash__gt_symbol("get"),(function() {return contents;\n-}),string_dash__gt_symbol("set_excl_"),(function(val){\n+return dict("\\uFDD1get",(function() {return contents;\n+}),"\\uFDD1set!",(function(val){\n contents = val;\n }));\n });\n-var o4 = string_dash__gt_symbol("_unassigned_");\n+var o4 = "\\uFDD1_unassigned_";\n return o3(o4);\n }))();\n });\n var make_dash_stack = (function() {return ((function() {var o5 = (function(s){\n-return dict(string_dash__gt_symbol("push"),(function(x){\n+return dict("\\uFDD1push",(function(x){\n s = cons(x,s);\n-}),string_dash__gt_symbol("pop_excl_"),(function() {return (function() {if(null_p_(s)) {throw("pop: empty stack");\n+}),"\\uFDD1pop!",(function() {return (function() {if(null_p_(s)) {throw("pop: empty stack");\n } else {return ((function() {var o7 = (function(top){\n s = cdr(s);\n return top;\n@@ -924,7 +924,7 @@ return o7(o8);\n }))();\n }})()\n ;\n-}),string_dash__gt_symbol("initialize"),(function() {s = _emptylst;\n+}),"\\uFDD1initialize",(function() {s = _emptylst;\n }));\n });\n var o6 = _emptylst;\n@@ -952,7 +952,7 @@ return (function() {if(on_dash_break) {return on_dash_break();\n ;\n });\n var execute = (function() {return ((function() {var loop = (function() {return ((function() {var o19 = (function(insts){\n-return (function() {if(null_p_(insts)) {return string_dash__gt_symbol("done");\n+return (function() {if(null_p_(insts)) {return "\\uFDD1done";\n } else {return ((function() {var o21 = (function(inst){\n return (function() {if(not(paused)) {return ((function() {var o23 = (function(proc){\n (function() {if(proc) {return proc();\n@@ -975,30 +975,30 @@ return o21(o22);\n }})()\n ;\n });\n-var o20 = pc.get();\n+var o20 = pc["get"]();\n return o19(o20);\n }))();\n });\n return trampoline(loop());\n }))();\n });\n-return dict(string_dash__gt_symbol("start"),(function() {pc.set_excl_(instruction_dash_sequence);\n+return dict("\\uFDD1start",(function() {pc["set!"](instruction_dash_sequence);\n return execute();\n-}),string_dash__gt_symbol("install_dash_instruction_dash_sequence"),(function(seq){\n+}),"\\uFDD1install-instruction-sequence",(function(seq){\n instruction_dash_sequence = seq;\n-}),string_dash__gt_symbol("allocate_dash_register"),allocate_dash_register,string_dash__gt_symbol("get_dash_register"),lookup_dash_register,string_dash__gt_symbol("install_dash_operations"),(function(dct){\n+}),"\\uFDD1allocate-register",allocate_dash_register,"\\uFDD1get-register",lookup_dash_register,"\\uFDD1install-operations",(function(dct){\n ops = dict_dash_merge(ops,dct);\n-}),string_dash__gt_symbol("stack"),(function() {return stack;\n-}),string_dash__gt_symbol("operations"),(function() {return ops;\n-}),string_dash__gt_symbol("registers"),(function() {return keys(reg_dash_table);\n-}),string_dash__gt_symbol("pause"),pause,string_dash__gt_symbol("proceed"),(function() {paused = false;\n+}),"\\uFDD1stack",(function() {return stack;\n+}),"\\uFDD1operations",(function() {return ops;\n+}),"\\uFDD1registers",(function() {return keys(reg_dash_table);\n+}),"\\uFDD1pause",pause,"\\uFDD1proceed",(function() {paused = false;\n return execute();\n-}),string_dash__gt_symbol("set_dash_break_dash_handler"),(function(func){\n+}),"\\uFDD1set-break-handler",(function(func){\n on_dash_break = func;\n-}),string_dash__gt_symbol("on_dash_input"),(function(txt){\n+}),"\\uFDD1on-input",(function(txt){\n return ((function() {var o25 = (function(exp){\n-(function() {if(eq_p_(car(exp),string_dash__gt_symbol("read_dash_into_dash_reg"))) {return ((function() {var o27 = (function(reg){\n-return reg.set_excl_(read(txt));\n+(function() {if(eq_p_(car(exp),"\\uFDD1read-into-reg")) {return ((function() {var o27 = (function(reg){\n+return reg["set!"](read(txt));\n });\n var o28 = lookup_dash_register(cadr(exp));\n return o27(o28);\n@@ -1011,13 +1011,13 @@ stop_dash_stdin();\n paused = false;\n return execute();\n });\n-var o26 = instruction_dash_text(car(pc.get()));\n+var o26 = instruction_dash_text(car(pc["get"]()));\n return o25(o26);\n }))();\n }));\n });\n-var o17 = dict(string_dash__gt_symbol("initialize_dash_stack"),stack.initialize);\n-var o18 = dict(string_dash__gt_symbol("flag"),flag,string_dash__gt_symbol("pc"),pc);\n+var o17 = dict("\\uFDD1initialize-stack",stack["initialize"]);\n+var o18 = dict("\\uFDD1flag",flag,"\\uFDD1pc",pc);\n return o16(o17,o18);\n }))();\n });\n@@ -1031,10 +1031,10 @@ return o9(o10,o11,o12,o13,o14,o15);\n }))();\n });\n var get_dash_register_dash_contents = (function(machine,name){\n-return dict_dash_ref(machine.get_dash_register(name),string_dash__gt_symbol("get"))();\n+return dict_dash_ref(machine["get-register"](name),"\\uFDD1get")();\n });\n var set_dash_register_dash_contents_excl_ = (function(machine,name,val){\n-return dict_dash_ref(machine.get_dash_register(name),string_dash__gt_symbol("set_excl_"))(val);\n+return dict_dash_ref(machine["get-register"](name),"\\uFDD1set!")(val);\n });\n var assemble = (function(controller,machine){\n return extract_dash_labels(controller,(function(insts,labels){\n@@ -1076,10 +1076,10 @@ return o36(o37);\n }))();\n }),labels);\n });\n-var o32 = machine.get_dash_register(string_dash__gt_symbol("pc"));\n-var o33 = machine.get_dash_register(string_dash__gt_symbol("flag"));\n-var o34 = machine.stack();\n-var o35 = machine.operations();\n+var o32 = machine["get-register"]("\\uFDD1pc");\n+var o33 = machine["get-register"]("\\uFDD1flag");\n+var o34 = machine["stack"]();\n+var o35 = machine["operations"]();\n return o31(o32,o33,o34,o35);\n }))();\n });\n@@ -1130,31 +1130,31 @@ return o38(o39);\n }))();\n });\n var advance_dash_pc = (function(pc){\n-return pc.set_excl_(cdr(pc.get()));\n+return pc["set!"](cdr(pc["get"]()));\n });\n var make_dash_execution_dash_procedure = (function(inst,labels,machine,pc,flag,stack,ops){\n return ((function() {var o40 = (function(top){\n-return (function() {if(_eq__eq_(top,string_dash__gt_symbol("assign"))) {return ((function() {return make_dash_assign(inst,machine,labels,ops,pc);\n+return (function() {if(_eq__eq_(top,"\\uFDD1assign")) {return ((function() {return make_dash_assign(inst,machine,labels,ops,pc);\n }))();\n-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("test"))) {return ((function() {return make_dash_test(inst,machine,labels,ops,flag,pc);\n+} else {return (function() {if(_eq__eq_(top,"\\uFDD1test")) {return ((function() {return make_dash_test(inst,machine,labels,ops,flag,pc);\n }))();\n-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("branch"))) {return ((function() {return make_dash_branch(inst,machine,labels,flag,pc);\n+} else {return (function() {if(_eq__eq_(top,"\\uFDD1branch")) {return ((function() {return make_dash_branch(inst,machine,labels,flag,pc);\n }))();\n-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("goto"))) {return ((function() {return make_dash_goto(inst,machine,labels,pc);\n+} else {return (function() {if(_eq__eq_(top,"\\uFDD1goto")) {return ((function() {return make_dash_goto(inst,machine,labels,pc);\n }))();\n-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("save"))) {return ((function() {return make_dash_save(inst,machine,stack,pc);\n+} else {return (function() {if(_eq__eq_(top,"\\uFDD1save")) {return ((function() {return make_dash_save(inst,machine,stack,pc);\n }))();\n-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("restore"))) {return ((function() {return make_dash_restore(inst,machine,stack,pc);\n+} else {return (function() {if(_eq__eq_(top,"\\uFDD1restore")) {return ((function() {return make_dash_restore(inst,machine,stack,pc);\n }))();\n-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("perform"))) {return ((function() {return make_dash_perform(inst,machine,labels,ops,pc);\n+} else {return (function() {if(_eq__eq_(top,"\\uFDD1perform")) {return ((function() {return make_dash_perform(inst,machine,labels,ops,pc);\n }))();\n-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("read_dash_into_dash_reg"))) {return ((function() {return make_dash_read(inst,machine,pc);\n+} else {return (function() {if(_eq__eq_(top,"\\uFDD1read-into-reg")) {return ((function() {return make_dash_read(inst,machine,pc);\n }))();\n-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("break"))) {return ((function() {return make_dash_break(machine,pc);\n+} else {return (function() {if(_eq__eq_(top,"\\uFDD1break")) {return ((function() {return make_dash_break(machine,pc);\n }))();\n-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("next"))) {return ((function() {return make_dash_next(machine,pc);\n+} else {return (function() {if(_eq__eq_(top,"\\uFDD1next")) {return ((function() {return make_dash_next(machine,pc);\n }))();\n-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("nop"))) {return ((function() {return make_dash_nop(machine,pc);\n+} else {return (function() {if(_eq__eq_(top,"\\uFDD1nop")) {return ((function() {return make_dash_nop(machine,pc);\n }))();\n } else {return false;\n }})()\n@@ -1187,7 +1187,7 @@ return o40(o41);\n var make_dash_assign = (function(inst,machine,labels,ops,pc){\n return ((function() {var o42 = (function(target,expr){\n return ((function() {var o45 = (function(value_dash_proc){\n-return (function() {target.set_excl_(value_dash_proc());\n+return (function() {target["set!"](value_dash_proc());\n return advance_dash_pc(pc);\n });\n });\n@@ -1198,7 +1198,7 @@ var o46 = (function() {if(operation_dash_exp_p_(expr)) {return make_dash_operati\n return o45(o46);\n }))();\n });\n-var o43 = machine.get_dash_register(cadr(inst));\n+var o43 = machine["get-register"](cadr(inst));\n var o44 = cddr(inst);\n return o42(o43,o44);\n }))();\n@@ -1206,7 +1206,7 @@ return o42(o43,o44);\n var make_dash_test = (function(inst,machine,labels,ops,flag,pc){\n return ((function() {var o47 = (function(condition){\n return (function() {if(operation_dash_exp_p_(condition)) {return ((function() {var o49 = (function(condition_dash_proc){\n-return (function() {flag.set_excl_(condition_dash_proc());\n+return (function() {flag["set!"](condition_dash_proc());\n return advance_dash_pc(pc);\n });\n });\n@@ -1224,7 +1224,7 @@ return o47(o48);\n var make_dash_branch = (function(inst,machine,labels,flag,pc){\n return ((function() {var o51 = (function(dest){\n return (function() {if(label_dash_exp_p_(dest)) {return ((function() {var o53 = (function(insts){\n-return (function() {return (function() {if(flag.get()) {return pc.set_excl_(insts);\n+return (function() {return (function() {if(flag["get"]()) {return pc["set!"](insts);\n } else {return advance_dash_pc(pc);\n }})()\n ;\n@@ -1244,7 +1244,7 @@ return o51(o52);\n var make_dash_goto = (function(inst,machine,labels,pc){\n return ((function() {var o55 = (function(dest){\n return (function() {if(label_dash_exp_p_(dest)) {return ((function() {return ((function() {var o57 = (function(insts){\n-return (function() {return pc.set_excl_(insts);\n+return (function() {return pc["set!"](insts);\n });\n });\n var o58 = lookup_dash_label(labels,label_dash_exp_dash_label(dest));\n@@ -1252,10 +1252,10 @@ return o57(o58);\n }))();\n }))();\n } else {return (function() {if(register_dash_exp_p_(dest)) {return ((function() {return ((function() {var o59 = (function(reg){\n-return (function() {return pc.set_excl_(reg.get());\n+return (function() {return pc["set!"](reg["get"]());\n });\n });\n-var o60 = machine.get_dash_register(register_dash_exp_dash_reg(dest));\n+var o60 = machine["get-register"](register_dash_exp_dash_reg(dest));\n return o59(o60);\n }))();\n }))();\n@@ -1272,21 +1272,21 @@ return o55(o56);\n });\n var make_dash_save = (function(inst,machine,stack,pc){\n return ((function() {var o61 = (function(reg){\n-return (function() {stack.push(reg.get());\n+return (function() {stack["push"](reg["get"]());\n return advance_dash_pc(pc);\n });\n });\n-var o62 = machine.get_dash_register(cadr(inst));\n+var o62 = machine["get-register"](cadr(inst));\n return o61(o62);\n }))();\n });\n var make_dash_restore = (function(inst,machine,stack,pc){\n return ((function() {var o63 = (function(reg){\n-return (function() {reg.set_excl_(stack.pop_excl_());\n+return (function() {reg["set!"](stack["pop!"]());\n return advance_dash_pc(pc);\n });\n });\n-var o64 = machine.get_dash_register(cadr(inst));\n+var o64 = machine["get-register"](cadr(inst));\n return o63(o64);\n }))();\n });\n@@ -1310,25 +1310,25 @@ return o65(o66);\n });\n var make_dash_read = (function(inst,machine,pc){\n return ((function() {var o69 = (function(reg){\n-return (function() {start_dash_stdin(string_dash__gt_symbol("repl"));\n-return machine.pause();\n+return (function() {start_dash_stdin("\\uFDD1repl");\n+return machine["pause"]();\n });\n });\n-var o70 = machine.get_dash_register(cadr(inst));\n+var o70 = machine["get-register"](cadr(inst));\n return o69(o70);\n }))();\n });\n var make_dash_break = (function(machine,pc){\n return (function() {advance_dash_pc(pc);\n-start_dash_stdin(string_dash__gt_symbol("break"));\n-println(str("break: ",get_dash_register_dash_contents(machine,string_dash__gt_symbol("exp"))));\n-return machine.pause();\n+start_dash_stdin("\\uFDD1break");\n+println(str("break: ",get_dash_register_dash_contents(machine,"\\uFDD1exp")));\n+return machine["pause"]();\n });\n });\n var make_dash_next = (function(machine,pc){\n return (function() {advance_dash_pc(pc);\n-machine.pause();\n-return setTimeout((function() {return machine.proceed();\n+machine["pause"]();\n+return setTimeout((function() {return machine["proceed"]();\n }),1);\n });\n });\n@@ -1354,10 +1354,10 @@ return o73(o74);\n }))();\n }))();\n } else {return (function() {if(register_dash_exp_p_(exp)) {return ((function() {return ((function() {var o75 = (function(r){\n-return (function() {return r.get();\n+return (function() {return r["get"]();\n });\n });\n-var o76 = machine.get_dash_register(cadr(exp));\n+var o76 = machine["get-register"](cadr(exp));\n return o75(o76);\n }))();\n }))();\n@@ -1371,19 +1371,19 @@ return o75(o76);\n ;\n });\n var label_dash_exp_p_ = (function(exp){\n-return (list_p_(exp) && _eq__eq_(car(exp),string_dash__gt_symbol("label")));\n+return (list_p_(exp) && _eq__eq_(car(exp),"\\uFDD1label"));\n });\n var label_dash_exp_dash_label = (function(exp){\n return cadr(exp);\n });\n var register_dash_exp_p_ = (function(exp){\n-return (list_p_(exp) && _eq__eq_(car(exp),string_dash__gt_symbol("reg")));\n+return (list_p_(exp) && _eq__eq_(car(exp),"\\uFDD1reg"));\n });\n var register_dash_exp_dash_reg = (function(exp){\n return cadr(exp);\n });\n var const_dash_exp_p_ = (function(exp){\n-return (list_p_(exp) && _eq__eq_(car(exp),string_dash__gt_symbol("const")));\n+return (list_p_(exp) && _eq__eq_(car(exp),"\\uFDD1const"));\n });\n var const_dash_exp_dash_value = (function(exp){\n return cadr(exp);\n@@ -1403,7 +1403,7 @@ return o77(o78,o79);\n }))();\n });\n var operation_dash_exp_p_ = (function(exp){\n-return (list_p_(exp) && eq_p_(car(car(exp)),string_dash__gt_symbol("op")));\n+return (list_p_(exp) && eq_p_(car(car(exp)),"\\uFDD1op"));\n });\n var lookup_dash_prim = (function(sym,ops){\n return ((function() {var o80 = (function(prim){\n@@ -1422,20 +1422,20 @@ var start_dash_stdin = (function(mode){\n stdin_dash_mode = mode;\n return get_dash_stdin_dash_handler()();\n });\n-var stdin_dash_handler = (function() {return process.stdin.resume();\n+var stdin_dash_handler = (function() {return process["stdin"]["resume"]();\n });\n var get_dash_stdin_dash_handler = (function() {return stdin_dash_handler;\n });\n var set_dash_stdin_dash_handler_excl_ = (function(func){\n stdin_dash_handler = func;\n });\n-var stop_dash_stdin = (function() {return process.stdin.pause();\n+var stop_dash_stdin = (function() {return process["stdin"]["pause"]();\n });\n-process.stdin.on("data",(function(txt){\n+process["stdin"]["on"]("data",(function(txt){\n return ((function() {var o82 = (function(txt){\n-return (function() {if(_eq_(stdin_dash_mode,string_dash__gt_symbol("repl"))) {return ((function() {return on_dash_repl_dash_input(txt);\n+return (function() {if(_eq_(stdin_dash_mode,"\\uFDD1repl")) {return ((function() {return on_dash_repl_dash_input(txt);\n }))();\n-} else {return (function() {if(_eq_(stdin_dash_mode,string_dash__gt_symbol("break"))) {return ((function() {return on_dash_break_dash_input(txt);\n+} else {return (function() {if(_eq_(stdin_dash_mode,"\\uFDD1break")) {return ((function() {return on_dash_break_dash_input(txt);\n }))();\n } else {return false;\n }})()\n@@ -1447,12 +1447,21 @@ var o83 = (txt + "");\n return o82(o83);\n }))();\n }));\n-process.stdin.pause();\n-var continue_dash_machine = (function() {process.stdin.pause();\n-return current_dash_machine.proceed();\n+process["stdin"]["pause"]();\n+var continue_dash_machine = (function() {process["stdin"]["pause"]();\n+return current_dash_machine["proceed"]();\n });\n var inspect_dash_var = (function(v){\n-return inspect(v);\n+return (function() {if((v && compiler["compiled-procedure?"](v))) {return ((function() {return "<compiled-function>";\n+}))();\n+} else {return (function() {if((v && compiler["primitive-procedure?"](v))) {return ((function() {return "<native-function>";\n+}))();\n+} else {return ((function() {return inspect(v);\n+}))();\n+}})()\n+;\n+}})()\n+;\n });\n var inspect_dash_environment = (function() {return ((function() {var o84 = (function(frame){\n return fold((function(k,acc){\n@@ -1465,7 +1474,7 @@ return o86(o87,o88);\n }))();\n }),"",keys(frame));\n });\n-var o85 = compiler.first_dash_frame(get_dash_register_dash_contents(current_dash_machine,string_dash__gt_symbol("env")));\n+var o85 = compiler["first-frame"](get_dash_register_dash_contents(current_dash_machine,"\\uFDD1env"));\n return o84(o85);\n }))();\n });\n@@ -1478,27 +1487,27 @@ return (function() {if(_eq_(txt,"v")) {return ((function() {return println(inspe\n }})()\n ;\n });\n-var o90 = txt.trim();\n+var o90 = txt["trim"]();\n return o89(o90);\n }))();\n });\n var current_dash_machine = false;\n var on_dash_repl_dash_input = (function(txt){\n-return current_dash_machine.on_dash_input(txt);\n+return current_dash_machine["on-input"](txt);\n });\n var on_dash_break_dash_input = debugger_dash_handle;\n var feed_dash_asm = (function(src){\n return ((function() {var o91 = (function(machine){\n-set_dash_register_dash_contents_excl_(machine,string_dash__gt_symbol("env"),compiler.global_dash_environment);\n+set_dash_register_dash_contents_excl_(machine,"\\uFDD1env",compiler["global-environment"]);\n current_dash_machine = machine;\n return machine;\n });\n-var o92 = make_dash_machine(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("proc"),string_dash__gt_symbol("val"),string_dash__gt_symbol("arg1"),string_dash__gt_symbol("continue"),string_dash__gt_symbol("input"),string_dash__gt_symbol("exp")),compiler.ops,src);\n+var o92 = make_dash_machine(list("\\uFDD1env","\\uFDD1proc","\\uFDD1val","\\uFDD1arg1","\\uFDD1continue","\\uFDD1input","\\uFDD1exp"),compiler["ops"],src);\n return o91(o92);\n }))();\n });\n-module.exports = dict(string_dash__gt_symbol("feed_dash_asm"),feed_dash_asm,string_dash__gt_symbol("set_dash_stdin_dash_handler_excl_"),set_dash_stdin_dash_handler_excl_,string_dash__gt_symbol("instance"),(function() {return current_dash_machine;\n-}),string_dash__gt_symbol("inspect_dash_environment"),inspect_dash_environment,string_dash__gt_symbol("get_dash_register_dash_contents"),get_dash_register_dash_contents,string_dash__gt_symbol("result"),(function() {return get_dash_register_dash_contents(current_dash_machine,string_dash__gt_symbol("val"));\n+module["exports"] = dict("\\uFDD1feed-asm",feed_dash_asm,"\\uFDD1set-stdin-handler!",set_dash_stdin_dash_handler_excl_,"\\uFDD1instance",(function() {return current_dash_machine;\n+}),"\\uFDD1inspect-environment",inspect_dash_environment,"\\uFDD1get-register-contents",get_dash_register_dash_contents,"\\uFDD1result",(function() {return get_dash_register_dash_contents(current_dash_machine,"\\uFDD1val");\n }));\n \n \n@@ -1512,32 +1521,32 @@ require.define("fs", function (require, module, exports, __dirname, __filename)\n require.define("/vm.js", function (require, module, exports, __dirname, __filename) {\n     var __args = process.argv.slice(2);var compiler = require("./compiler");var machine = require("./machine");var run = (function(src){\n return ((function() {var o1 = (function(statements,m){\n-m.set_dash_break_dash_handler(break_dash_handler);\n-return m.start();\n+m["set-break-handler"](break_dash_handler);\n+return m["start"]();\n });\n-var o2 = compiler.compile(src);\n-var o3 = machine.feed_dash_asm(o2);\n+var o2 = compiler["compile"](src);\n+var o3 = machine["feed-asm"](o2);\n return o1(o2,o3);\n }))();\n });\n var resume = (function() {return ((function() {var o4 = (function(m){\n-return m.proceed();\n+return m["proceed"]();\n });\n-var o5 = machine.instance();\n+var o5 = machine["instance"]();\n return o4(o5);\n }))();\n });\n var asm = (function(src){\n-return pp(compiler.compile(src));\n+return pp(compiler["compile"](src));\n });\n var break_dash_handler = false;\n var set_dash_break_dash_handler = (function(func){\n break_dash_handler = func;\n });\n var install_dash_primitives = (function(procs){\n-return compiler.install_dash_primitives(procs);\n+return compiler["install-primitives"](procs);\n });\n-module.exports = dict(string_dash__gt_symbol("run"),run,string_dash__gt_symbol("asm"),asm,string_dash__gt_symbol("stepping_dash_mode"),compiler.stepping_dash_mode,string_dash__gt_symbol("set_dash_break_dash_handler"),set_dash_break_dash_handler,string_dash__gt_symbol("install_dash_primitives"),install_dash_primitives);\n+module["exports"] = dict("\\uFDD1run",run,"\\uFDD1asm",asm,"\\uFDD1stepping-mode",compiler["stepping-mode"],"\\uFDD1set-break-handler",set_dash_break_dash_handler,"\\uFDD1install-primitives",install_dash_primitives);\n \n \n });\n', 'commit_subject': "Merge branch 'symbols'", 'repo_name': 'jlongster/outlet', 'committer': {'name': 'James Long', 'email': '460b2db10f587d51f3f87f8f4965f7ed5d93e0c6@jlongster.com', 'time_sec': '1333586553', 'tz_offset': '-420', 'date': {'seconds': '1333586553'}}, 'commit_tree': 'e9bf092267dba99ead6ceb72f607d4e35becd731', 'commit_message': "Merge branch 'symbols'\n", 'language_name': 'JavaScript', 'license': 'bsd-2-clause', 'hunks': '@@ -367,22 +367,22 @@ return not(x);\n var self_dash_evaluating_p_ = literal_p_;\n var variable_p_ = symbol_p_;\n var quoted_p_ = (function(expr){\n-return eq_p_(car(expr),string_dash__gt_symbol("quote"));\n+return eq_p_(car(expr),"\\uFDD1quote");\n });\n var assignment_p_ = (function(expr){\n-return eq_p_(car(expr),string_dash__gt_symbol("set_excl_"));\n+return eq_p_(car(expr),"\\uFDD1set!");\n });\n var definition_p_ = (function(expr){\n-return eq_p_(car(expr),string_dash__gt_symbol("define"));\n+return eq_p_(car(expr),"\\uFDD1define");\n });\n var if_p_ = (function(expr){\n-return eq_p_(car(expr),string_dash__gt_symbol("if"));\n+return eq_p_(car(expr),"\\uFDD1if");\n });\n var lambda_p_ = (function(expr){\n-return eq_p_(car(expr),string_dash__gt_symbol("lambda"));\n+return eq_p_(car(expr),"\\uFDD1lambda");\n });\n var begin_p_ = (function(expr){\n-return eq_p_(car(expr),string_dash__gt_symbol("begin"));\n+return eq_p_(car(expr),"\\uFDD1begin");\n });\n var application_p_ = list_p_;\n var text_dash_of_dash_quotation = (function(expr){\n@@ -391,7 +391,7 @@ return cadr(expr);\n var assignment_dash_variable = cadr;\n var assignment_dash_value = caddr;\n var make_dash_lambda = (function(args,body){\n-return cons(string_dash__gt_symbol("lambda"),cons(args,body));\n+return cons("\\uFDD1lambda",cons(args,body));\n });\n var definition_dash_variable = (function(expr){\n return (function() {if(symbol_p_(cadr(expr))) {return cadr(expr);\n@@ -434,9 +434,9 @@ var always_dash_should_dash_break = false;\n var should_dash_break = false;\n var breakpoint = (function(exp){\n return (function() {if((always_dash_should_dash_break || should_dash_break)) {return ((function() {should_dash_break = false;\n-return list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("exp"),list(string_dash__gt_symbol("const"),exp)),list(string_dash__gt_symbol("break")));\n+return list(list("\\uFDD1assign","\\uFDD1exp",list("\\uFDD1const",exp)),list("\\uFDD1break"));\n }))();\n-} else {return list(list(string_dash__gt_symbol("nop")));\n+} else {return list(list("\\uFDD1nop"));\n }})()\n ;\n });\n@@ -485,7 +485,7 @@ return append_dash_seq_dash_list(seqs);\n var preserving = (function(regs,seq1,seq2){\n return (function() {if(null_p_(regs)) {return append_dash_instruction_dash_sequences(seq1,seq2);\n } else {return ((function() {var o1 = (function(first_dash_reg){\n-return (function() {if((needs_dash_register_p_(seq2,first_dash_reg) && modifies_dash_register_p_(seq1,first_dash_reg))) {return preserving(cdr(regs),make_dash_instruction_dash_sequence(list_dash_union(list(first_dash_reg),registers_dash_needed(seq1)),list_dash_difference(registers_dash_modified(seq1),list(first_dash_reg)),list_dash_append(list(list(string_dash__gt_symbol("save"),first_dash_reg)),list_dash_append(statements(seq1),list(list(string_dash__gt_symbol("restore"),first_dash_reg))))),seq2);\n+return (function() {if((needs_dash_register_p_(seq2,first_dash_reg) && modifies_dash_register_p_(seq1,first_dash_reg))) {return preserving(cdr(regs),make_dash_instruction_dash_sequence(list_dash_union(list(first_dash_reg),registers_dash_needed(seq1)),list_dash_difference(registers_dash_modified(seq1),list(first_dash_reg)),list_dash_append(list(list("\\uFDD1save",first_dash_reg)),list_dash_append(statements(seq1),list(list("\\uFDD1restore",first_dash_reg))))),seq2);\n } else {return preserving(cdr(regs),seq1,seq2);\n }})()\n ;\n@@ -571,45 +571,45 @@ var o10 = last_dash_frame(global_dash_environment);\n return o9(o10);\n }))();\n });\n-var primitive_dash_procedures = dict(string_dash__gt_symbol("car"),car,string_dash__gt_symbol("cdr"),cdr,string_dash__gt_symbol("cons"),cons,string_dash__gt_symbol("list"),list,string_dash__gt_symbol("null_p_"),null_p_,string_dash__gt_symbol("pp"),pp,string_dash__gt_symbol("+"),(function(x,y){\n+var primitive_dash_procedures = dict("\\uFDD1car",car,"\\uFDD1cdr",cdr,"\\uFDD1cons",cons,"\\uFDD1list",list,"\\uFDD1null?",null_p_,"\\uFDD1pp",pp,"\\uFDD1+",(function(x,y){\n return (x + y);\n-}),string_dash__gt_symbol("_dash_"),(function(x,y){\n+}),"\\uFDD1-",(function(x,y){\n return (x - y);\n-}),string_dash__gt_symbol("*"),(function(x,y){\n+}),"\\uFDD1*",(function(x,y){\n return (x * y);\n-}),string_dash__gt_symbol("_gt_"),(function(x,y){\n+}),"\\uFDD1>",(function(x,y){\n return (x > y);\n-}),string_dash__gt_symbol("_lt_"),(function(x,y){\n+}),"\\uFDD1<",(function(x,y){\n return (x < y);\n-}),string_dash__gt_symbol("_eq__eq_"),_eq__eq_);\n+}),"\\uFDD1==",_eq__eq_);\n var primitive_dash_procedure_dash_names = (function() {return keys(primitive_dash_procedures);\n });\n var primitive_dash_procedure_dash_objects = (function() {return map(make_dash_primitive_dash_procedure,vals(primitive_dash_procedures));\n });\n var make_dash_primitive_dash_procedure = (function(proc){\n-return list(string_dash__gt_symbol("primitive"),proc);\n+return list("\\uFDD1primitive",proc);\n });\n var primitive_dash_procedure_p_ = (function(proc){\n-return eq_p_(car(proc),string_dash__gt_symbol("primitive"));\n+return eq_p_(car(proc),"\\uFDD1primitive");\n });\n var primitive_dash_implementation = cadr;\n var apply_dash_primitive_dash_procedure = (function(proc,args){\n return apply(primitive_dash_implementation(proc),args);\n });\n var make_dash_compiled_dash_procedure = (function(entry,env){\n-return list(string_dash__gt_symbol("compiled_dash_procedure"),entry,env);\n+return list("\\uFDD1compiled-procedure",entry,env);\n });\n var compiled_dash_procedure_p_ = (function(proc){\n-return eq_p_(car(proc),string_dash__gt_symbol("compiled_dash_procedure"));\n+return eq_p_(car(proc),"\\uFDD1compiled-procedure");\n });\n var compiled_dash_procedure_dash_entry = cadr;\n var compiled_dash_procedure_dash_env = caddr;\n var compile_dash_linkage = (function(linkage){\n-return (function() {if(eq_p_(linkage,string_dash__gt_symbol("return"))) {return ((function() {return make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("continue")),_emptylst,list(list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("continue")))));\n+return (function() {if(eq_p_(linkage,"\\uFDD1return")) {return ((function() {return make_dash_instruction_dash_sequence(list("\\uFDD1continue"),_emptylst,list(list("\\uFDD1goto",list("\\uFDD1reg","\\uFDD1continue"))));\n }))();\n-} else {return (function() {if(eq_p_(linkage,string_dash__gt_symbol("next"))) {return ((function() {return empty_dash_instruction_dash_sequence();\n+} else {return (function() {if(eq_p_(linkage,"\\uFDD1next")) {return ((function() {return empty_dash_instruction_dash_sequence();\n }))();\n-} else {return ((function() {return make_dash_instruction_dash_sequence(_emptylst,_emptylst,list(list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("label"),linkage))));\n+} else {return ((function() {return make_dash_instruction_dash_sequence(_emptylst,_emptylst,list(list("\\uFDD1goto",list("\\uFDD1label",linkage))));\n }))();\n }})()\n ;\n@@ -617,7 +617,7 @@ return (function() {if(eq_p_(linkage,string_dash__gt_symbol("return"))) {return\n ;\n });\n var end_dash_with_dash_linkage = (function(linkage,instruction_dash_sequence){\n-return preserving(list(string_dash__gt_symbol("continue")),instruction_dash_sequence,compile_dash_linkage(linkage));\n+return preserving(list("\\uFDD1continue"),instruction_dash_sequence,compile_dash_linkage(linkage));\n });\n var compile_dash_self_dash_evaluating = (function(exp,target,linkage){\n return end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(_emptylst,list(target),list_dash_append(((function() {var o12 = (function(o11){\n@@ -628,7 +628,7 @@ return (function() {if(vector_p_(o11)) {return vector_dash__gt_list(o11);\n });\n var o13 = breakpoint(exp);\n return o12(o13);\n-}))(),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("const"),exp))))));\n+}))(),list(list("\\uFDD1assign",target,list("\\uFDD1const",exp))))));\n });\n var compile_dash_quoted = (function(exp,target,linkage){\n return end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(_emptylst,list(target),list_dash_append(((function() {var o15 = (function(o14){\n@@ -639,10 +639,10 @@ return (function() {if(vector_p_(o14)) {return vector_dash__gt_list(o14);\n });\n var o16 = breakpoint(exp);\n return o15(o16);\n-}))(),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("const"),text_dash_of_dash_quotation(exp)))))));\n+}))(),list(list("\\uFDD1assign",target,list("\\uFDD1const",text_dash_of_dash_quotation(exp)))))));\n });\n var compile_dash_variable = (function(exp,target,linkage){\n-return end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env")),list(target),list_dash_append(((function() {var o18 = (function(o17){\n+return end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(list("\\uFDD1env"),list(target),list_dash_append(((function() {var o18 = (function(o17){\n return (function() {if(vector_p_(o17)) {return vector_dash__gt_list(o17);\n } else {return o17;\n }})()\n@@ -650,11 +650,11 @@ return (function() {if(vector_p_(o17)) {return vector_dash__gt_list(o17);\n });\n var o19 = breakpoint(exp);\n return o18(o19);\n-}))(),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("op"),string_dash__gt_symbol("lookup_dash_variable_dash_value")),list(string_dash__gt_symbol("const"),exp),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env")))))));\n+}))(),list(list("\\uFDD1assign",target,list("\\uFDD1op","\\uFDD1lookup-variable-value"),list("\\uFDD1const",exp),list("\\uFDD1reg","\\uFDD1env"))))));\n });\n var compile_dash_assignment = (function(exp,target,linkage){\n return ((function() {var o20 = (function(_var_,value_dash_code){\n-return end_dash_with_dash_linkage(linkage,preserving(list(string_dash__gt_symbol("env")),value_dash_code,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("val")),list(target),list_dash_append(((function() {var o24 = (function(o23){\n+return end_dash_with_dash_linkage(linkage,preserving(list("\\uFDD1env"),value_dash_code,make_dash_instruction_dash_sequence(list("\\uFDD1env","\\uFDD1val"),list(target),list_dash_append(((function() {var o24 = (function(o23){\n return (function() {if(vector_p_(o23)) {return vector_dash__gt_list(o23);\n } else {return o23;\n }})()\n@@ -662,16 +662,16 @@ return (function() {if(vector_p_(o23)) {return vector_dash__gt_list(o23);\n });\n var o25 = breakpoint(exp);\n return o24(o25);\n-}))(),list(list(string_dash__gt_symbol("perform"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("set_dash_variable_dash_value_excl_")),list(string_dash__gt_symbol("const"),_var_),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env"))),list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("const"),string_dash__gt_symbol("ok"))))))));\n+}))(),list(list("\\uFDD1perform",list("\\uFDD1op","\\uFDD1set-variable-value!"),list("\\uFDD1const",_var_),list("\\uFDD1reg","\\uFDD1val"),list("\\uFDD1reg","\\uFDD1env")),list("\\uFDD1assign",target,list("\\uFDD1const","\\uFDD1ok")))))));\n });\n var o21 = assignment_dash_variable(exp);\n-var o22 = compile(assignment_dash_value(exp),string_dash__gt_symbol("val"),string_dash__gt_symbol("next"));\n+var o22 = compile(assignment_dash_value(exp),"\\uFDD1val","\\uFDD1next");\n return o20(o21,o22);\n }))();\n });\n var compile_dash_definition = (function(exp,target,linkage){\n return ((function() {var o26 = (function(_var_,value_dash_code){\n-return end_dash_with_dash_linkage(linkage,preserving(list(string_dash__gt_symbol("env")),value_dash_code,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("val")),list(target),list_dash_append(((function() {var o30 = (function(o29){\n+return end_dash_with_dash_linkage(linkage,preserving(list("\\uFDD1env"),value_dash_code,make_dash_instruction_dash_sequence(list("\\uFDD1env","\\uFDD1val"),list(target),list_dash_append(((function() {var o30 = (function(o29){\n return (function() {if(vector_p_(o29)) {return vector_dash__gt_list(o29);\n } else {return o29;\n }})()\n@@ -679,16 +679,16 @@ return (function() {if(vector_p_(o29)) {return vector_dash__gt_list(o29);\n });\n var o31 = breakpoint(exp);\n return o30(o31);\n-}))(),list(list(string_dash__gt_symbol("perform"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("define_dash_variable_excl_")),list(string_dash__gt_symbol("const"),_var_),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env"))),list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("const"),string_dash__gt_symbol("ok"))))))));\n+}))(),list(list("\\uFDD1perform",list("\\uFDD1op","\\uFDD1define-variable!"),list("\\uFDD1const",_var_),list("\\uFDD1reg","\\uFDD1val"),list("\\uFDD1reg","\\uFDD1env")),list("\\uFDD1assign",target,list("\\uFDD1const","\\uFDD1ok")))))));\n });\n var o27 = definition_dash_variable(exp);\n-var o28 = compile(definition_dash_value(exp),string_dash__gt_symbol("val"),string_dash__gt_symbol("next"));\n+var o28 = compile(definition_dash_value(exp),"\\uFDD1val","\\uFDD1next");\n return o26(o27,o28);\n }))();\n });\n var compile_dash_if = (function(exp,target,linkage){\n return ((function() {var o32 = (function(t_dash_branch,f_dash_branch,after_dash_if,consequent_dash_linkage,p_dash_code,c_dash_code,a_dash_code){\n-return preserving(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("continue")),p_dash_code,append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("val")),_emptylst,list_dash_append(((function() {var o41 = (function(o40){\n+return preserving(list("\\uFDD1env","\\uFDD1continue"),p_dash_code,append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(list("\\uFDD1val"),_emptylst,list_dash_append(((function() {var o41 = (function(o40){\n return (function() {if(vector_p_(o40)) {return vector_dash__gt_list(o40);\n } else {return o40;\n }})()\n@@ -696,16 +696,16 @@ return (function() {if(vector_p_(o40)) {return vector_dash__gt_list(o40);\n });\n var o42 = breakpoint(exp);\n return o41(o42);\n-}))(),list(list(string_dash__gt_symbol("test"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("false_p_")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val"))),list(string_dash__gt_symbol("branch"),list(string_dash__gt_symbol("label"),f_dash_branch))))),parallel_dash_instruction_dash_sequences(append_dash_instruction_dash_sequences(t_dash_branch,c_dash_code),append_dash_instruction_dash_sequences(f_dash_branch,a_dash_code)),after_dash_if));\n+}))(),list(list("\\uFDD1test",list("\\uFDD1op","\\uFDD1false?"),list("\\uFDD1reg","\\uFDD1val")),list("\\uFDD1branch",list("\\uFDD1label",f_dash_branch))))),parallel_dash_instruction_dash_sequences(append_dash_instruction_dash_sequences(t_dash_branch,c_dash_code),append_dash_instruction_dash_sequences(f_dash_branch,a_dash_code)),after_dash_if));\n });\n-var o33 = make_dash_label(string_dash__gt_symbol("true_dash_branch"));\n-var o34 = make_dash_label(string_dash__gt_symbol("false_dash_branch"));\n-var o35 = make_dash_label(string_dash__gt_symbol("after_dash_if"));\n-var o36 = (function() {if(eq_p_(linkage,string_dash__gt_symbol("next"))) {return o35;\n+var o33 = make_dash_label("\\uFDD1true-branch");\n+var o34 = make_dash_label("\\uFDD1false-branch");\n+var o35 = make_dash_label("\\uFDD1after-if");\n+var o36 = (function() {if(eq_p_(linkage,"\\uFDD1next")) {return o35;\n } else {return linkage;\n }})()\n ;\n-var o37 = compile(if_dash_predicate(exp),string_dash__gt_symbol("val"),string_dash__gt_symbol("next"));\n+var o37 = compile(if_dash_predicate(exp),"\\uFDD1val","\\uFDD1next");\n var o38 = compile(if_dash_consequent(exp),target,o36);\n var o39 = compile(if_dash_alternative(exp),target,linkage);\n return o32(o33,o34,o35,o36,o37,o38,o39);\n@@ -713,13 +713,13 @@ return o32(o33,o34,o35,o36,o37,o38,o39);\n });\n var compile_dash_sequence = (function(seq,target,linkage){\n return (function() {if(last_dash_exp_p_(seq)) {return compile(first_dash_exp(seq),target,linkage);\n-} else {return preserving(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("continue")),compile(first_dash_exp(seq),target,string_dash__gt_symbol("next")),compile_dash_sequence(rest_dash_exps(seq),target,linkage));\n+} else {return preserving(list("\\uFDD1env","\\uFDD1continue"),compile(first_dash_exp(seq),target,"\\uFDD1next"),compile_dash_sequence(rest_dash_exps(seq),target,linkage));\n }})()\n ;\n });\n var compile_dash_lambda = (function(exp,target,linkage){\n return ((function() {var o43 = (function(proc_dash_entry,after_dash_lambda,lambda_dash_linkage){\n-return append_dash_instruction_dash_sequences(tack_dash_on_dash_instruction_dash_sequence(end_dash_with_dash_linkage(lambda_dash_linkage,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env")),list(target),list_dash_append(((function() {var o48 = (function(o47){\n+return append_dash_instruction_dash_sequences(tack_dash_on_dash_instruction_dash_sequence(end_dash_with_dash_linkage(lambda_dash_linkage,make_dash_instruction_dash_sequence(list("\\uFDD1env"),list(target),list_dash_append(((function() {var o48 = (function(o47){\n return (function() {if(vector_p_(o47)) {return vector_dash__gt_list(o47);\n } else {return o47;\n }})()\n@@ -727,11 +727,11 @@ return (function() {if(vector_p_(o47)) {return vector_dash__gt_list(o47);\n });\n var o49 = breakpoint(exp);\n return o48(o49);\n-}))(),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("op"),string_dash__gt_symbol("make_dash_compiled_dash_procedure")),list(string_dash__gt_symbol("label"),proc_dash_entry),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env"))))))),compile_dash_lambda_dash_body(exp,proc_dash_entry)),after_dash_lambda);\n+}))(),list(list("\\uFDD1assign",target,list("\\uFDD1op","\\uFDD1make-compiled-procedure"),list("\\uFDD1label",proc_dash_entry),list("\\uFDD1reg","\\uFDD1env")))))),compile_dash_lambda_dash_body(exp,proc_dash_entry)),after_dash_lambda);\n });\n-var o44 = make_dash_label(string_dash__gt_symbol("entry"));\n-var o45 = make_dash_label(string_dash__gt_symbol("after_dash_lambda"));\n-var o46 = (function() {if(eq_p_(linkage,string_dash__gt_symbol("next"))) {return o45;\n+var o44 = make_dash_label("\\uFDD1entry");\n+var o45 = make_dash_label("\\uFDD1after-lambda");\n+var o46 = (function() {if(eq_p_(linkage,"\\uFDD1next")) {return o45;\n } else {return linkage;\n }})()\n ;\n@@ -740,7 +740,7 @@ return o43(o44,o45,o46);\n });\n var compile_dash_lambda_dash_body = (function(exp,proc_dash_entry){\n return ((function() {var o50 = (function(formals){\n-return append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("proc"),string_dash__gt_symbol("arg1")),list(string_dash__gt_symbol("env")),list(proc_dash_entry,list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("env"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("compiled_dash_procedure_dash_env")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("env"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("extend_dash_environment")),list(string_dash__gt_symbol("const"),formals),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("arg1")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env"))))),compile_dash_sequence(lambda_dash_body(exp),string_dash__gt_symbol("val"),string_dash__gt_symbol("return")));\n+return append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(list("\\uFDD1env","\\uFDD1proc","\\uFDD1arg1"),list("\\uFDD1env"),list(proc_dash_entry,list("\\uFDD1assign","\\uFDD1env",list("\\uFDD1op","\\uFDD1compiled-procedure-env"),list("\\uFDD1reg","\\uFDD1proc")),list("\\uFDD1assign","\\uFDD1env",list("\\uFDD1op","\\uFDD1extend-environment"),list("\\uFDD1const",formals),list("\\uFDD1reg","\\uFDD1arg1"),list("\\uFDD1reg","\\uFDD1env")))),compile_dash_sequence(lambda_dash_body(exp),"\\uFDD1val","\\uFDD1return"));\n });\n var o51 = lambda_dash_parameters(exp);\n return o50(o51);\n@@ -748,26 +748,26 @@ return o50(o51);\n });\n var compile_dash_application = (function(exp,target,linkage){\n return ((function() {var o52 = (function(bp,proc_dash_code,operand_dash_codes){\n-return preserving(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("continue")),proc_dash_code,preserving(list(string_dash__gt_symbol("proc"),string_dash__gt_symbol("continue")),construct_dash_arglist(operand_dash_codes),append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(_emptylst,_emptylst,bp),compile_dash_procedure_dash_call(exp,target,linkage))));\n+return preserving(list("\\uFDD1env","\\uFDD1continue"),proc_dash_code,preserving(list("\\uFDD1proc","\\uFDD1continue"),construct_dash_arglist(operand_dash_codes),append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(_emptylst,_emptylst,bp),compile_dash_procedure_dash_call(exp,target,linkage))));\n });\n var o53 = breakpoint(exp);\n-var o54 = compile(operator(exp),string_dash__gt_symbol("proc"),string_dash__gt_symbol("next"));\n+var o54 = compile(operator(exp),"\\uFDD1proc","\\uFDD1next");\n var o55 = map((function(operand){\n-return compile(operand,string_dash__gt_symbol("val"),string_dash__gt_symbol("next"));\n+return compile(operand,"\\uFDD1val","\\uFDD1next");\n }),operands(exp));\n return o52(o53,o54,o55);\n }))();\n });\n var construct_dash_arglist = (function(operand_dash_codes){\n return ((function() {var o56 = (function(operand_dash_codes){\n-return (function() {if(null_p_(operand_dash_codes)) {return make_dash_instruction_dash_sequence(_emptylst,list(string_dash__gt_symbol("arg1")),list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("arg1"),list(string_dash__gt_symbol("const"),_emptylst))));\n+return (function() {if(null_p_(operand_dash_codes)) {return make_dash_instruction_dash_sequence(_emptylst,list("\\uFDD1arg1"),list(list("\\uFDD1assign","\\uFDD1arg1",list("\\uFDD1const",_emptylst))));\n } else {return ((function() {var o58 = (function(code_dash_to_dash_get_dash_last_dash_arg){\n return (function() {if(null_p_(cdr(operand_dash_codes))) {return code_dash_to_dash_get_dash_last_dash_arg;\n-} else {return preserving(list(string_dash__gt_symbol("env")),code_dash_to_dash_get_dash_last_dash_arg,code_dash_to_dash_get_dash_rest_dash_args(cdr(operand_dash_codes)));\n+} else {return preserving(list("\\uFDD1env"),code_dash_to_dash_get_dash_last_dash_arg,code_dash_to_dash_get_dash_rest_dash_args(cdr(operand_dash_codes)));\n }})()\n ;\n });\n-var o59 = append_dash_instruction_dash_sequences(car(operand_dash_codes),make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("val")),list(string_dash__gt_symbol("arg1")),list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("arg1"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("list")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val"))))));\n+var o59 = append_dash_instruction_dash_sequences(car(operand_dash_codes),make_dash_instruction_dash_sequence(list("\\uFDD1val"),list("\\uFDD1arg1"),list(list("\\uFDD1assign","\\uFDD1arg1",list("\\uFDD1op","\\uFDD1list"),list("\\uFDD1reg","\\uFDD1val")))));\n return o58(o59);\n }))();\n }})()\n@@ -780,22 +780,22 @@ return o56(o57);\n var code_dash_to_dash_get_dash_rest_dash_args = (function(operand_dash_codes){\n return ((function() {var o60 = (function(code_dash_for_dash_next_dash_arg){\n return (function() {if(null_p_(cdr(operand_dash_codes))) {return code_dash_for_dash_next_dash_arg;\n-} else {return preserving(list(string_dash__gt_symbol("env")),code_dash_for_dash_next_dash_arg,code_dash_to_dash_get_dash_rest_dash_args(cdr(operand_dash_codes)));\n+} else {return preserving(list("\\uFDD1env"),code_dash_for_dash_next_dash_arg,code_dash_to_dash_get_dash_rest_dash_args(cdr(operand_dash_codes)));\n }})()\n ;\n });\n-var o61 = preserving(list(string_dash__gt_symbol("arg1")),car(operand_dash_codes),make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("val"),string_dash__gt_symbol("arg1")),list(string_dash__gt_symbol("arg1")),list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("arg1"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("cons")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("arg1"))))));\n+var o61 = preserving(list("\\uFDD1arg1"),car(operand_dash_codes),make_dash_instruction_dash_sequence(list("\\uFDD1val","\\uFDD1arg1"),list("\\uFDD1arg1"),list(list("\\uFDD1assign","\\uFDD1arg1",list("\\uFDD1op","\\uFDD1cons"),list("\\uFDD1reg","\\uFDD1val"),list("\\uFDD1reg","\\uFDD1arg1")))));\n return o60(o61);\n }))();\n });\n var compile_dash_procedure_dash_call = (function(exp,target,linkage){\n return ((function() {var o62 = (function(primitive_dash_branch,compiled_dash_branch,after_dash_call,compiled_dash_linkage){\n-return append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc")),_emptylst,list(list(string_dash__gt_symbol("test"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("primitive_dash_procedure_p_")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("branch"),list(string_dash__gt_symbol("label"),primitive_dash_branch)))),parallel_dash_instruction_dash_sequences(append_dash_instruction_dash_sequences(compiled_dash_branch,compile_dash_proc_dash_app1(target,compiled_dash_linkage)),append_dash_instruction_dash_sequences(primitive_dash_branch,end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc"),string_dash__gt_symbol("arg1")),list(target),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("op"),string_dash__gt_symbol("apply_dash_primitive_dash_procedure")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("arg1")))))))),after_dash_call);\n+return append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(list("\\uFDD1proc"),_emptylst,list(list("\\uFDD1test",list("\\uFDD1op","\\uFDD1primitive-procedure?"),list("\\uFDD1reg","\\uFDD1proc")),list("\\uFDD1branch",list("\\uFDD1label",primitive_dash_branch)))),parallel_dash_instruction_dash_sequences(append_dash_instruction_dash_sequences(compiled_dash_branch,compile_dash_proc_dash_app1(target,compiled_dash_linkage)),append_dash_instruction_dash_sequences(primitive_dash_branch,end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(list("\\uFDD1proc","\\uFDD1arg1"),list(target),list(list("\\uFDD1assign",target,list("\\uFDD1op","\\uFDD1apply-primitive-procedure"),list("\\uFDD1reg","\\uFDD1proc"),list("\\uFDD1reg","\\uFDD1arg1"))))))),after_dash_call);\n });\n-var o63 = make_dash_label(string_dash__gt_symbol("primitive_dash_branch"));\n-var o64 = make_dash_label(string_dash__gt_symbol("compiled_dash_branch"));\n-var o65 = make_dash_label(string_dash__gt_symbol("after_dash_call"));\n-var o66 = (function() {if(eq_p_(linkage,string_dash__gt_symbol("next"))) {return o65;\n+var o63 = make_dash_label("\\uFDD1primitive-branch");\n+var o64 = make_dash_label("\\uFDD1compiled-branch");\n+var o65 = make_dash_label("\\uFDD1after-call");\n+var o66 = (function() {if(eq_p_(linkage,"\\uFDD1next")) {return o65;\n } else {return linkage;\n }})()\n ;\n@@ -803,13 +803,13 @@ return o62(o63,o64,o65,o66);\n }))();\n });\n var compile_dash_proc_dash_app1 = (function(target,linkage){\n-return (function() {if((eq_p_(target,string_dash__gt_symbol("val")) && not(eq_p_(linkage,string_dash__gt_symbol("return"))))) {return ((function() {return make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc")),all_dash_regs,list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("continue"),list(string_dash__gt_symbol("label"),linkage)),list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("val"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("compiled_dash_procedure_dash_entry")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")))));\n+return (function() {if((eq_p_(target,"\\uFDD1val") && not(eq_p_(linkage,"\\uFDD1return")))) {return ((function() {return make_dash_instruction_dash_sequence(list("\\uFDD1proc"),all_dash_regs,list(list("\\uFDD1assign","\\uFDD1continue",list("\\uFDD1label",linkage)),list("\\uFDD1assign","\\uFDD1val",list("\\uFDD1op","\\uFDD1compiled-procedure-entry"),list("\\uFDD1reg","\\uFDD1proc")),list("\\uFDD1goto",list("\\uFDD1reg","\\uFDD1val"))));\n }))();\n-} else {return (function() {if((not(eq_p_(target,string_dash__gt_symbol("val"))) && not(eq_p_(linkage,string_dash__gt_symbol("return"))))) {return ((function() {return make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc")),all_dash_regs,list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("continue"),list(string_dash__gt_symbol("label"),proc_dash_return)),list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("val"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("compiled_dash_procedure_dash_entry")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val"))),proc_dash_return,list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val"))),list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("label"),linkage))));\n+} else {return (function() {if((not(eq_p_(target,"\\uFDD1val")) && not(eq_p_(linkage,"\\uFDD1return")))) {return ((function() {return make_dash_instruction_dash_sequence(list("\\uFDD1proc"),all_dash_regs,list(list("\\uFDD1assign","\\uFDD1continue",list("\\uFDD1label",proc_dash_return)),list("\\uFDD1assign","\\uFDD1val",list("\\uFDD1op","\\uFDD1compiled-procedure-entry"),list("\\uFDD1reg","\\uFDD1proc")),list("\\uFDD1goto",list("\\uFDD1reg","\\uFDD1val")),proc_dash_return,list("\\uFDD1assign",target,list("\\uFDD1reg","\\uFDD1val")),list("\\uFDD1goto",list("\\uFDD1label",linkage))));\n }))();\n-} else {return (function() {if((eq_p_(target,string_dash__gt_symbol("val")) && eq_p_(linkage,string_dash__gt_symbol("return")))) {return ((function() {return make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc"),string_dash__gt_symbol("continue")),all_dash_regs,list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("val"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("compiled_dash_procedure_dash_entry")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")))));\n+} else {return (function() {if((eq_p_(target,"\\uFDD1val") && eq_p_(linkage,"\\uFDD1return"))) {return ((function() {return make_dash_instruction_dash_sequence(list("\\uFDD1proc","\\uFDD1continue"),all_dash_regs,list(list("\\uFDD1assign","\\uFDD1val",list("\\uFDD1op","\\uFDD1compiled-procedure-entry"),list("\\uFDD1reg","\\uFDD1proc")),list("\\uFDD1goto",list("\\uFDD1reg","\\uFDD1val"))));\n }))();\n-} else {return (function() {if((not(eq_p_(target,string_dash__gt_symbol("val"))) && eq_p_(linkage,string_dash__gt_symbol("return")))) {return ((function() {throw(str("compile-proc-app1: return linkage, target not val: ",target));\n+} else {return (function() {if((not(eq_p_(target,"\\uFDD1val")) && eq_p_(linkage,"\\uFDD1return"))) {return ((function() {throw(str("compile-proc-app1: return linkage, target not val: ",target));\n }))();\n } else {return false;\n }})()\n@@ -822,12 +822,12 @@ return (function() {if((eq_p_(target,string_dash__gt_symbol("val")) && not(eq_p_\n ;\n });\n var next_p_ = (function(exp){\n-return (list_p_(exp) && eq_p_(car(exp),string_dash__gt_symbol("next")));\n+return (list_p_(exp) && eq_p_(car(exp),"\\uFDD1next"));\n });\n var compile_dash_next = (function(linkage){\n-return end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(_emptylst,_emptylst,list(list(string_dash__gt_symbol("next")))));\n+return end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(_emptylst,_emptylst,list(list("\\uFDD1next"))));\n });\n-var all_dash_regs = list(string_dash__gt_symbol("env"),string_dash__gt_symbol("proc"),string_dash__gt_symbol("val"),string_dash__gt_symbol("arg1"),string_dash__gt_symbol("continue"),string_dash__gt_symbol("exp"));\n+var all_dash_regs = list("\\uFDD1env","\\uFDD1proc","\\uFDD1val","\\uFDD1arg1","\\uFDD1continue","\\uFDD1exp");\n var compile = (function(exp,target,linkage){\n return (function() {if(next_p_(exp)) {return ((function() {return compile_dash_next(linkage);\n }))();\n@@ -847,7 +847,7 @@ return (function() {if(next_p_(exp)) {return ((function() {return compile_dash_n\n }))();\n } else {return (function() {if(begin_p_(exp)) {return ((function() {return compile_dash_sequence(begin_dash_actions(exp),target,linkage);\n }))();\n-} else {return (function() {if(application_p_(exp)) {return ((function() {return (function() {if(eq_p_(car(exp),string_dash__gt_symbol("break"))) {return ((function() {should_dash_break = true;\n+} else {return (function() {if(application_p_(exp)) {return ((function() {return (function() {if(eq_p_(car(exp),"\\uFDD1break")) {return ((function() {should_dash_break = true;\n return empty_dash_instruction_dash_sequence();\n }))();\n } else {return compile_dash_application(exp,target,linkage);\n@@ -877,12 +877,12 @@ return empty_dash_instruction_dash_sequence();\n }})()\n ;\n });\n-var runtime_dash_ops = dict(string_dash__gt_symbol("make_dash_compiled_dash_procedure"),make_dash_compiled_dash_procedure,string_dash__gt_symbol("compiled_dash_procedure_p_"),compiled_dash_procedure_p_,string_dash__gt_symbol("compiled_dash_procedure_dash_env"),compiled_dash_procedure_dash_env,string_dash__gt_symbol("compiled_dash_procedure_dash_entry"),compiled_dash_procedure_dash_entry,string_dash__gt_symbol("extend_dash_environment"),extend_dash_environment,string_dash__gt_symbol("lookup_dash_variable_dash_value"),lookup_dash_variable_dash_value,string_dash__gt_symbol("define_dash_variable_excl_"),define_dash_variable_excl_,string_dash__gt_symbol("list"),list,string_dash__gt_symbol("cons"),cons,string_dash__gt_symbol("primitive_dash_procedure_p_"),primitive_dash_procedure_p_,string_dash__gt_symbol("apply_dash_primitive_dash_procedure"),apply_dash_primitive_dash_procedure,string_dash__gt_symbol("false_p_"),false_p_,string_dash__gt_symbol("true_p_"),true_p_);\n+var runtime_dash_ops = dict("\\uFDD1make-compiled-procedure",make_dash_compiled_dash_procedure,"\\uFDD1compiled-procedure?",compiled_dash_procedure_p_,"\\uFDD1compiled-procedure-env",compiled_dash_procedure_dash_env,"\\uFDD1compiled-procedure-entry",compiled_dash_procedure_dash_entry,"\\uFDD1extend-environment",extend_dash_environment,"\\uFDD1lookup-variable-value",lookup_dash_variable_dash_value,"\\uFDD1define-variable!",define_dash_variable_excl_,"\\uFDD1list",list,"\\uFDD1cons",cons,"\\uFDD1primitive-procedure?",primitive_dash_procedure_p_,"\\uFDD1apply-primitive-procedure",apply_dash_primitive_dash_procedure,"\\uFDD1false?",false_p_,"\\uFDD1true?",true_p_);\n var global_dash_environment = setup_dash_environment();\n-module.exports = dict(string_dash__gt_symbol("compile"),(function(src){\n-return statements(compile(src,string_dash__gt_symbol("val"),string_dash__gt_symbol("next")));\n-}),string_dash__gt_symbol("ops"),runtime_dash_ops,string_dash__gt_symbol("first_dash_frame"),first_dash_frame,string_dash__gt_symbol("install_dash_primitives"),install_dash_primitives,string_dash__gt_symbol("stepping_dash_mode"),(function() {always_dash_should_dash_break = true;\n-}),string_dash__gt_symbol("global_dash_environment"),global_dash_environment);\n+module["exports"] = dict("\\uFDD1compile",(function(src){\n+return statements(compile(src,"\\uFDD1val","\\uFDD1next"));\n+}),"\\uFDD1ops",runtime_dash_ops,"\\uFDD1first-frame",first_dash_frame,"\\uFDD1install-primitives",install_dash_primitives,"\\uFDD1stepping-mode",(function() {always_dash_should_dash_break = true;\n+}),"\\uFDD1primitive-procedure?",primitive_dash_procedure_p_,"\\uFDD1compiled-procedure?",compiled_dash_procedure_p_,"\\uFDD1global-environment",global_dash_environment);\n \n \n });\n@@ -891,10 +891,10 @@ require.define("/machine.js", function (require, module, exports, __dirname, __f\n var __args = process.argv.slice(2);var fs = require("fs");var compiler = require("./compiler");var make_dash_machine = (function(regs,ops,controller){\n return ((function() {var o1 = (function(machine){\n for_dash_each((function(reg){\n-return machine.allocate_dash_register(reg);\n+return machine["allocate-register"](reg);\n }),regs);\n-machine.install_dash_operations(ops);\n-machine.install_dash_instruction_dash_sequence(assemble(controller,machine));\n+machine["install-operations"](ops);\n+machine["install-instruction-sequence"](assemble(controller,machine));\n return machine;\n });\n var o2 = make_dash_new_dash_machine();\n@@ -902,19 +902,19 @@ return o1(o2);\n }))();\n });\n var make_dash_register = (function() {return ((function() {var o3 = (function(contents){\n-return dict(string_dash__gt_symbol("get"),(function() {return contents;\n-}),string_dash__gt_symbol("set_excl_"),(function(val){\n+return dict("\\uFDD1get",(function() {return contents;\n+}),"\\uFDD1set!",(function(val){\n contents = val;\n }));\n });\n-var o4 = string_dash__gt_symbol("_unassigned_");\n+var o4 = "\\uFDD1_unassigned_";\n return o3(o4);\n }))();\n });\n var make_dash_stack = (function() {return ((function() {var o5 = (function(s){\n-return dict(string_dash__gt_symbol("push"),(function(x){\n+return dict("\\uFDD1push",(function(x){\n s = cons(x,s);\n-}),string_dash__gt_symbol("pop_excl_"),(function() {return (function() {if(null_p_(s)) {throw("pop: empty stack");\n+}),"\\uFDD1pop!",(function() {return (function() {if(null_p_(s)) {throw("pop: empty stack");\n } else {return ((function() {var o7 = (function(top){\n s = cdr(s);\n return top;\n@@ -924,7 +924,7 @@ return o7(o8);\n }))();\n }})()\n ;\n-}),string_dash__gt_symbol("initialize"),(function() {s = _emptylst;\n+}),"\\uFDD1initialize",(function() {s = _emptylst;\n }));\n });\n var o6 = _emptylst;\n@@ -952,7 +952,7 @@ return (function() {if(on_dash_break) {return on_dash_break();\n ;\n });\n var execute = (function() {return ((function() {var loop = (function() {return ((function() {var o19 = (function(insts){\n-return (function() {if(null_p_(insts)) {return string_dash__gt_symbol("done");\n+return (function() {if(null_p_(insts)) {return "\\uFDD1done";\n } else {return ((function() {var o21 = (function(inst){\n return (function() {if(not(paused)) {return ((function() {var o23 = (function(proc){\n (function() {if(proc) {return proc();\n@@ -975,30 +975,30 @@ return o21(o22);\n }})()\n ;\n });\n-var o20 = pc.get();\n+var o20 = pc["get"]();\n return o19(o20);\n }))();\n });\n return trampoline(loop());\n }))();\n });\n-return dict(string_dash__gt_symbol("start"),(function() {pc.set_excl_(instruction_dash_sequence);\n+return dict("\\uFDD1start",(function() {pc["set!"](instruction_dash_sequence);\n return execute();\n-}),string_dash__gt_symbol("install_dash_instruction_dash_sequence"),(function(seq){\n+}),"\\uFDD1install-instruction-sequence",(function(seq){\n instruction_dash_sequence = seq;\n-}),string_dash__gt_symbol("allocate_dash_register"),allocate_dash_register,string_dash__gt_symbol("get_dash_register"),lookup_dash_register,string_dash__gt_symbol("install_dash_operations"),(function(dct){\n+}),"\\uFDD1allocate-register",allocate_dash_register,"\\uFDD1get-register",lookup_dash_register,"\\uFDD1install-operations",(function(dct){\n ops = dict_dash_merge(ops,dct);\n-}),string_dash__gt_symbol("stack"),(function() {return stack;\n-}),string_dash__gt_symbol("operations"),(function() {return ops;\n-}),string_dash__gt_symbol("registers"),(function() {return keys(reg_dash_table);\n-}),string_dash__gt_symbol("pause"),pause,string_dash__gt_symbol("proceed"),(function() {paused = false;\n+}),"\\uFDD1stack",(function() {return stack;\n+}),"\\uFDD1operations",(function() {return ops;\n+}),"\\uFDD1registers",(function() {return keys(reg_dash_table);\n+}),"\\uFDD1pause",pause,"\\uFDD1proceed",(function() {paused = false;\n return execute();\n-}),string_dash__gt_symbol("set_dash_break_dash_handler"),(function(func){\n+}),"\\uFDD1set-break-handler",(function(func){\n on_dash_break = func;\n-}),string_dash__gt_symbol("on_dash_input"),(function(txt){\n+}),"\\uFDD1on-input",(function(txt){\n return ((function() {var o25 = (function(exp){\n-(function() {if(eq_p_(car(exp),string_dash__gt_symbol("read_dash_into_dash_reg"))) {return ((function() {var o27 = (function(reg){\n-return reg.set_excl_(read(txt));\n+(function() {if(eq_p_(car(exp),"\\uFDD1read-into-reg")) {return ((function() {var o27 = (function(reg){\n+return reg["set!"](read(txt));\n });\n var o28 = lookup_dash_register(cadr(exp));\n return o27(o28);\n@@ -1011,13 +1011,13 @@ stop_dash_stdin();\n paused = false;\n return execute();\n });\n-var o26 = instruction_dash_text(car(pc.get()));\n+var o26 = instruction_dash_text(car(pc["get"]()));\n return o25(o26);\n }))();\n }));\n });\n-var o17 = dict(string_dash__gt_symbol("initialize_dash_stack"),stack.initialize);\n-var o18 = dict(string_dash__gt_symbol("flag"),flag,string_dash__gt_symbol("pc"),pc);\n+var o17 = dict("\\uFDD1initialize-stack",stack["initialize"]);\n+var o18 = dict("\\uFDD1flag",flag,"\\uFDD1pc",pc);\n return o16(o17,o18);\n }))();\n });\n@@ -1031,10 +1031,10 @@ return o9(o10,o11,o12,o13,o14,o15);\n }))();\n });\n var get_dash_register_dash_contents = (function(machine,name){\n-return dict_dash_ref(machine.get_dash_register(name),string_dash__gt_symbol("get"))();\n+return dict_dash_ref(machine["get-register"](name),"\\uFDD1get")();\n });\n var set_dash_register_dash_contents_excl_ = (function(machine,name,val){\n-return dict_dash_ref(machine.get_dash_register(name),string_dash__gt_symbol("set_excl_"))(val);\n+return dict_dash_ref(machine["get-register"](name),"\\uFDD1set!")(val);\n });\n var assemble = (function(controller,machine){\n return extract_dash_labels(controller,(function(insts,labels){\n@@ -1076,10 +1076,10 @@ return o36(o37);\n }))();\n }),labels);\n });\n-var o32 = machine.get_dash_register(string_dash__gt_symbol("pc"));\n-var o33 = machine.get_dash_register(string_dash__gt_symbol("flag"));\n-var o34 = machine.stack();\n-var o35 = machine.operations();\n+var o32 = machine["get-register"]("\\uFDD1pc");\n+var o33 = machine["get-register"]("\\uFDD1flag");\n+var o34 = machine["stack"]();\n+var o35 = machine["operations"]();\n return o31(o32,o33,o34,o35);\n }))();\n });\n@@ -1130,31 +1130,31 @@ return o38(o39);\n }))();\n });\n var advance_dash_pc = (function(pc){\n-return pc.set_excl_(cdr(pc.get()));\n+return pc["set!"](cdr(pc["get"]()));\n });\n var make_dash_execution_dash_procedure = (function(inst,labels,machine,pc,flag,stack,ops){\n return ((function() {var o40 = (function(top){\n-return (function() {if(_eq__eq_(top,string_dash__gt_symbol("assign"))) {return ((function() {return make_dash_assign(inst,machine,labels,ops,pc);\n+return (function() {if(_eq__eq_(top,"\\uFDD1assign")) {return ((function() {return make_dash_assign(inst,machine,labels,ops,pc);\n }))();\n-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("test"))) {return ((function() {return make_dash_test(inst,machine,labels,ops,flag,pc);\n+} else {return (function() {if(_eq__eq_(top,"\\uFDD1test")) {return ((function() {return make_dash_test(inst,machine,labels,ops,flag,pc);\n }))();\n-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("branch"))) {return ((function() {return make_dash_branch(inst,machine,labels,flag,pc);\n+} else {return (function() {if(_eq__eq_(top,"\\uFDD1branch")) {return ((function() {return make_dash_branch(inst,machine,labels,flag,pc);\n }))();\n-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("goto"))) {return ((function() {return make_dash_goto(inst,machine,labels,pc);\n+} else {return (function() {if(_eq__eq_(top,"\\uFDD1goto")) {return ((function() {return make_dash_goto(inst,machine,labels,pc);\n }))();\n-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("save"))) {return ((function() {return make_dash_save(inst,machine,stack,pc);\n+} else {return (function() {if(_eq__eq_(top,"\\uFDD1save")) {return ((function() {return make_dash_save(inst,machine,stack,pc);\n }))();\n-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("restore"))) {return ((function() {return make_dash_restore(inst,machine,stack,pc);\n+} else {return (function() {if(_eq__eq_(top,"\\uFDD1restore")) {return ((function() {return make_dash_restore(inst,machine,stack,pc);\n }))();\n-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("perform"))) {return ((function() {return make_dash_perform(inst,machine,labels,ops,pc);\n+} else {return (function() {if(_eq__eq_(top,"\\uFDD1perform")) {return ((function() {return make_dash_perform(inst,machine,labels,ops,pc);\n }))();\n-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("read_dash_into_dash_reg"))) {return ((function() {return make_dash_read(inst,machine,pc);\n+} else {return (function() {if(_eq__eq_(top,"\\uFDD1read-into-reg")) {return ((function() {return make_dash_read(inst,machine,pc);\n }))();\n-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("break"))) {return ((function() {return make_dash_break(machine,pc);\n+} else {return (function() {if(_eq__eq_(top,"\\uFDD1break")) {return ((function() {return make_dash_break(machine,pc);\n }))();\n-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("next"))) {return ((function() {return make_dash_next(machine,pc);\n+} else {return (function() {if(_eq__eq_(top,"\\uFDD1next")) {return ((function() {return make_dash_next(machine,pc);\n }))();\n-} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("nop"))) {return ((function() {return make_dash_nop(machine,pc);\n+} else {return (function() {if(_eq__eq_(top,"\\uFDD1nop")) {return ((function() {return make_dash_nop(machine,pc);\n }))();\n } else {return false;\n }})()\n@@ -1187,7 +1187,7 @@ return o40(o41);\n var make_dash_assign = (function(inst,machine,labels,ops,pc){\n return ((function() {var o42 = (function(target,expr){\n return ((function() {var o45 = (function(value_dash_proc){\n-return (function() {target.set_excl_(value_dash_proc());\n+return (function() {target["set!"](value_dash_proc());\n return advance_dash_pc(pc);\n });\n });\n@@ -1198,7 +1198,7 @@ var o46 = (function() {if(operation_dash_exp_p_(expr)) {return make_dash_operati\n return o45(o46);\n }))();\n });\n-var o43 = machine.get_dash_register(cadr(inst));\n+var o43 = machine["get-register"](cadr(inst));\n var o44 = cddr(inst);\n return o42(o43,o44);\n }))();\n@@ -1206,7 +1206,7 @@ return o42(o43,o44);\n var make_dash_test = (function(inst,machine,labels,ops,flag,pc){\n return ((function() {var o47 = (function(condition){\n return (function() {if(operation_dash_exp_p_(condition)) {return ((function() {var o49 = (function(condition_dash_proc){\n-return (function() {flag.set_excl_(condition_dash_proc());\n+return (function() {flag["set!"](condition_dash_proc());\n return advance_dash_pc(pc);\n });\n });\n@@ -1224,7 +1224,7 @@ return o47(o48);\n var make_dash_branch = (function(inst,machine,labels,flag,pc){\n return ((function() {var o51 = (function(dest){\n return (function() {if(label_dash_exp_p_(dest)) {return ((function() {var o53 = (function(insts){\n-return (function() {return (function() {if(flag.get()) {return pc.set_excl_(insts);\n+return (function() {return (function() {if(flag["get"]()) {return pc["set!"](insts);\n } else {return advance_dash_pc(pc);\n }})()\n ;\n@@ -1244,7 +1244,7 @@ return o51(o52);\n var make_dash_goto = (function(inst,machine,labels,pc){\n return ((function() {var o55 = (function(dest){\n return (function() {if(label_dash_exp_p_(dest)) {return ((function() {return ((function() {var o57 = (function(insts){\n-return (function() {return pc.set_excl_(insts);\n+return (function() {return pc["set!"](insts);\n });\n });\n var o58 = lookup_dash_label(labels,label_dash_exp_dash_label(dest));\n@@ -1252,10 +1252,10 @@ return o57(o58);\n }))();\n }))();\n } else {return (function() {if(register_dash_exp_p_(dest)) {return ((function() {return ((function() {var o59 = (function(reg){\n-return (function() {return pc.set_excl_(reg.get());\n+return (function() {return pc["set!"](reg["get"]());\n });\n });\n-var o60 = machine.get_dash_register(register_dash_exp_dash_reg(dest));\n+var o60 = machine["get-register"](register_dash_exp_dash_reg(dest));\n return o59(o60);\n }))();\n }))();\n@@ -1272,21 +1272,21 @@ return o55(o56);\n });\n var make_dash_save = (function(inst,machine,stack,pc){\n return ((function() {var o61 = (function(reg){\n-return (function() {stack.push(reg.get());\n+return (function() {stack["push"](reg["get"]());\n return advance_dash_pc(pc);\n });\n });\n-var o62 = machine.get_dash_register(cadr(inst));\n+var o62 = machine["get-register"](cadr(inst));\n return o61(o62);\n }))();\n });\n var make_dash_restore = (function(inst,machine,stack,pc){\n return ((function() {var o63 = (function(reg){\n-return (function() {reg.set_excl_(stack.pop_excl_());\n+return (function() {reg["set!"](stack["pop!"]());\n return advance_dash_pc(pc);\n });\n });\n-var o64 = machine.get_dash_register(cadr(inst));\n+var o64 = machine["get-register"](cadr(inst));\n return o63(o64);\n }))();\n });\n@@ -1310,25 +1310,25 @@ return o65(o66);\n });\n var make_dash_read = (function(inst,machine,pc){\n return ((function() {var o69 = (function(reg){\n-return (function() {start_dash_stdin(string_dash__gt_symbol("repl"));\n-return machine.pause();\n+return (function() {start_dash_stdin("\\uFDD1repl");\n+return machine["pause"]();\n });\n });\n-var o70 = machine.get_dash_register(cadr(inst));\n+var o70 = machine["get-register"](cadr(inst));\n return o69(o70);\n }))();\n });\n var make_dash_break = (function(machine,pc){\n return (function() {advance_dash_pc(pc);\n-start_dash_stdin(string_dash__gt_symbol("break"));\n-println(str("break: ",get_dash_register_dash_contents(machine,string_dash__gt_symbol("exp"))));\n-return machine.pause();\n+start_dash_stdin("\\uFDD1break");\n+println(str("break: ",get_dash_register_dash_contents(machine,"\\uFDD1exp")));\n+return machine["pause"]();\n });\n });\n var make_dash_next = (function(machine,pc){\n return (function() {advance_dash_pc(pc);\n-machine.pause();\n-return setTimeout((function() {return machine.proceed();\n+machine["pause"]();\n+return setTimeout((function() {return machine["proceed"]();\n }),1);\n });\n });\n@@ -1354,10 +1354,10 @@ return o73(o74);\n }))();\n }))();\n } else {return (function() {if(register_dash_exp_p_(exp)) {return ((function() {return ((function() {var o75 = (function(r){\n-return (function() {return r.get();\n+return (function() {return r["get"]();\n });\n });\n-var o76 = machine.get_dash_register(cadr(exp));\n+var o76 = machine["get-register"](cadr(exp));\n return o75(o76);\n }))();\n }))();\n@@ -1371,19 +1371,19 @@ return o75(o76);\n ;\n });\n var label_dash_exp_p_ = (function(exp){\n-return (list_p_(exp) && _eq__eq_(car(exp),string_dash__gt_symbol("label")));\n+return (list_p_(exp) && _eq__eq_(car(exp),"\\uFDD1label"));\n });\n var label_dash_exp_dash_label = (function(exp){\n return cadr(exp);\n });\n var register_dash_exp_p_ = (function(exp){\n-return (list_p_(exp) && _eq__eq_(car(exp),string_dash__gt_symbol("reg")));\n+return (list_p_(exp) && _eq__eq_(car(exp),"\\uFDD1reg"));\n });\n var register_dash_exp_dash_reg = (function(exp){\n return cadr(exp);\n });\n var const_dash_exp_p_ = (function(exp){\n-return (list_p_(exp) && _eq__eq_(car(exp),string_dash__gt_symbol("const")));\n+return (list_p_(exp) && _eq__eq_(car(exp),"\\uFDD1const"));\n });\n var const_dash_exp_dash_value = (function(exp){\n return cadr(exp);\n@@ -1403,7 +1403,7 @@ return o77(o78,o79);\n }))();\n });\n var operation_dash_exp_p_ = (function(exp){\n-return (list_p_(exp) && eq_p_(car(car(exp)),string_dash__gt_symbol("op")));\n+return (list_p_(exp) && eq_p_(car(car(exp)),"\\uFDD1op"));\n });\n var lookup_dash_prim = (function(sym,ops){\n return ((function() {var o80 = (function(prim){\n@@ -1422,20 +1422,20 @@ var start_dash_stdin = (function(mode){\n stdin_dash_mode = mode;\n return get_dash_stdin_dash_handler()();\n });\n-var stdin_dash_handler = (function() {return process.stdin.resume();\n+var stdin_dash_handler = (function() {return process["stdin"]["resume"]();\n });\n var get_dash_stdin_dash_handler = (function() {return stdin_dash_handler;\n });\n var set_dash_stdin_dash_handler_excl_ = (function(func){\n stdin_dash_handler = func;\n });\n-var stop_dash_stdin = (function() {return process.stdin.pause();\n+var stop_dash_stdin = (function() {return process["stdin"]["pause"]();\n });\n-process.stdin.on("data",(function(txt){\n+process["stdin"]["on"]("data",(function(txt){\n return ((function() {var o82 = (function(txt){\n-return (function() {if(_eq_(stdin_dash_mode,string_dash__gt_symbol("repl"))) {return ((function() {return on_dash_repl_dash_input(txt);\n+return (function() {if(_eq_(stdin_dash_mode,"\\uFDD1repl")) {return ((function() {return on_dash_repl_dash_input(txt);\n }))();\n-} else {return (function() {if(_eq_(stdin_dash_mode,string_dash__gt_symbol("break"))) {return ((function() {return on_dash_break_dash_input(txt);\n+} else {return (function() {if(_eq_(stdin_dash_mode,"\\uFDD1break")) {return ((function() {return on_dash_break_dash_input(txt);\n }))();\n } else {return false;\n }})()\n@@ -1447,12 +1447,21 @@ var o83 = (txt + "");\n return o82(o83);\n }))();\n }));\n-process.stdin.pause();\n-var continue_dash_machine = (function() {process.stdin.pause();\n-return current_dash_machine.proceed();\n+process["stdin"]["pause"]();\n+var continue_dash_machine = (function() {process["stdin"]["pause"]();\n+return current_dash_machine["proceed"]();\n });\n var inspect_dash_var = (function(v){\n-return inspect(v);\n+return (function() {if((v && compiler["compiled-procedure?"](v))) {return ((function() {return "<compiled-function>";\n+}))();\n+} else {return (function() {if((v && compiler["primitive-procedure?"](v))) {return ((function() {return "<native-function>";\n+}))();\n+} else {return ((function() {return inspect(v);\n+}))();\n+}})()\n+;\n+}})()\n+;\n });\n var inspect_dash_environment = (function() {return ((function() {var o84 = (function(frame){\n return fold((function(k,acc){\n@@ -1465,7 +1474,7 @@ return o86(o87,o88);\n }))();\n }),"",keys(frame));\n });\n-var o85 = compiler.first_dash_frame(get_dash_register_dash_contents(current_dash_machine,string_dash__gt_symbol("env")));\n+var o85 = compiler["first-frame"](get_dash_register_dash_contents(current_dash_machine,"\\uFDD1env"));\n return o84(o85);\n }))();\n });\n@@ -1478,27 +1487,27 @@ return (function() {if(_eq_(txt,"v")) {return ((function() {return println(inspe\n }})()\n ;\n });\n-var o90 = txt.trim();\n+var o90 = txt["trim"]();\n return o89(o90);\n }))();\n });\n var current_dash_machine = false;\n var on_dash_repl_dash_input = (function(txt){\n-return current_dash_machine.on_dash_input(txt);\n+return current_dash_machine["on-input"](txt);\n });\n var on_dash_break_dash_input = debugger_dash_handle;\n var feed_dash_asm = (function(src){\n return ((function() {var o91 = (function(machine){\n-set_dash_register_dash_contents_excl_(machine,string_dash__gt_symbol("env"),compiler.global_dash_environment);\n+set_dash_register_dash_contents_excl_(machine,"\\uFDD1env",compiler["global-environment"]);\n current_dash_machine = machine;\n return machine;\n });\n-var o92 = make_dash_machine(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("proc"),string_dash__gt_symbol("val"),string_dash__gt_symbol("arg1"),string_dash__gt_symbol("continue"),string_dash__gt_symbol("input"),string_dash__gt_symbol("exp")),compiler.ops,src);\n+var o92 = make_dash_machine(list("\\uFDD1env","\\uFDD1proc","\\uFDD1val","\\uFDD1arg1","\\uFDD1continue","\\uFDD1input","\\uFDD1exp"),compiler["ops"],src);\n return o91(o92);\n }))();\n });\n-module.exports = dict(string_dash__gt_symbol("feed_dash_asm"),feed_dash_asm,string_dash__gt_symbol("set_dash_stdin_dash_handler_excl_"),set_dash_stdin_dash_handler_excl_,string_dash__gt_symbol("instance"),(function() {return current_dash_machine;\n-}),string_dash__gt_symbol("inspect_dash_environment"),inspect_dash_environment,string_dash__gt_symbol("get_dash_register_dash_contents"),get_dash_register_dash_contents,string_dash__gt_symbol("result"),(function() {return get_dash_register_dash_contents(current_dash_machine,string_dash__gt_symbol("val"));\n+module["exports"] = dict("\\uFDD1feed-asm",feed_dash_asm,"\\uFDD1set-stdin-handler!",set_dash_stdin_dash_handler_excl_,"\\uFDD1instance",(function() {return current_dash_machine;\n+}),"\\uFDD1inspect-environment",inspect_dash_environment,"\\uFDD1get-register-contents",get_dash_register_dash_contents,"\\uFDD1result",(function() {return get_dash_register_dash_contents(current_dash_machine,"\\uFDD1val");\n }));\n \n \n@@ -1512,32 +1521,32 @@ require.define("fs", function (require, module, exports, __dirname, __filename)\n require.define("/vm.js", function (require, module, exports, __dirname, __filename) {\n     var __args = process.argv.slice(2);var compiler = require("./compiler");var machine = require("./machine");var run = (function(src){\n return ((function() {var o1 = (function(statements,m){\n-m.set_dash_break_dash_handler(break_dash_handler);\n-return m.start();\n+m["set-break-handler"](break_dash_handler);\n+return m["start"]();\n });\n-var o2 = compiler.compile(src);\n-var o3 = machine.feed_dash_asm(o2);\n+var o2 = compiler["compile"](src);\n+var o3 = machine["feed-asm"](o2);\n return o1(o2,o3);\n }))();\n });\n var resume = (function() {return ((function() {var o4 = (function(m){\n-return m.proceed();\n+return m["proceed"]();\n });\n-var o5 = machine.instance();\n+var o5 = machine["instance"]();\n return o4(o5);\n }))();\n });\n var asm = (function(src){\n-return pp(compiler.compile(src));\n+return pp(compiler["compile"](src));\n });\n var break_dash_handler = false;\n var set_dash_break_dash_handler = (function(func){\n break_dash_handler = func;\n });\n var install_dash_primitives = (function(procs){\n-return compiler.install_dash_primitives(procs);\n+return compiler["install-primitives"](procs);\n });\n-module.exports = dict(string_dash__gt_symbol("run"),run,string_dash__gt_symbol("asm"),asm,string_dash__gt_symbol("stepping_dash_mode"),compiler.stepping_dash_mode,string_dash__gt_symbol("set_dash_break_dash_handler"),set_dash_break_dash_handler,string_dash__gt_symbol("install_dash_primitives"),install_dash_primitives);\n+module["exports"] = dict("\\uFDD1run",run,"\\uFDD1asm",asm,"\\uFDD1stepping-mode",compiler["stepping-mode"],"\\uFDD1set-break-handler",set_dash_break_dash_handler,"\\uFDD1install-primitives",install_dash_primitives);\n \n \n });\n', 'addition_count': 176, 'deletion_count': 167, 'src_file': 'a/web/debugger/web-vm.js', 'tgt_file': 'b/web/debugger/web-vm.js', 'file_extension': '.js', 'before_file': 'var require = function (file, cwd) {\n    var resolved = require.resolve(file, cwd || \'/\');\n    var mod = require.modules[resolved];\n    if (!mod) throw new Error(\n        \'Failed to resolve module \' + file + \', tried \' + resolved\n    );\n    var res = mod._cached ? mod._cached : mod();\n    return res;\n}\n\nrequire.paths = [];\nrequire.modules = {};\nrequire.extensions = [".js",".coffee"];\n\nrequire._core = {\n    \'assert\': true,\n    \'events\': true,\n    \'fs\': true,\n    \'path\': true,\n    \'vm\': true\n};\n\nrequire.resolve = (function () {\n    return function (x, cwd) {\n        if (!cwd) cwd = \'/\';\n        \n        if (require._core[x]) return x;\n        var path = require.modules.path();\n        cwd = path.resolve(\'/\', cwd);\n        var y = cwd || \'/\';\n        \n        if (x.match(/^(?:\\.\\.?\\/|\\/)/)) {\n            var m = loadAsFileSync(path.resolve(y, x))\n                || loadAsDirectorySync(path.resolve(y, x));\n            if (m) return m;\n        }\n        \n        var n = loadNodeModulesSync(x, y);\n        if (n) return n;\n        \n        throw new Error("Cannot find module \'" + x + "\'");\n        \n        function loadAsFileSync (x) {\n            if (require.modules[x]) {\n                return x;\n            }\n            \n            for (var i = 0; i < require.extensions.length; i++) {\n                var ext = require.extensions[i];\n                if (require.modules[x + ext]) return x + ext;\n            }\n        }\n        \n        function loadAsDirectorySync (x) {\n            x = x.replace(/\\/+$/, \'\');\n            var pkgfile = x + \'/package.json\';\n            if (require.modules[pkgfile]) {\n                var pkg = require.modules[pkgfile]();\n                var b = pkg.browserify;\n                if (typeof b === \'object\' && b.main) {\n                    var m = loadAsFileSync(path.resolve(x, b.main));\n                    if (m) return m;\n                }\n                else if (typeof b === \'string\') {\n                    var m = loadAsFileSync(path.resolve(x, b));\n                    if (m) return m;\n                }\n                else if (pkg.main) {\n                    var m = loadAsFileSync(path.resolve(x, pkg.main));\n                    if (m) return m;\n                }\n            }\n            \n            return loadAsFileSync(x + \'/index\');\n        }\n        \n        function loadNodeModulesSync (x, start) {\n            var dirs = nodeModulesPathsSync(start);\n            for (var i = 0; i < dirs.length; i++) {\n                var dir = dirs[i];\n                var m = loadAsFileSync(dir + \'/\' + x);\n                if (m) return m;\n                var n = loadAsDirectorySync(dir + \'/\' + x);\n                if (n) return n;\n            }\n            \n            var m = loadAsFileSync(x);\n            if (m) return m;\n        }\n        \n        function nodeModulesPathsSync (start) {\n            var parts;\n            if (start === \'/\') parts = [ \'\' ];\n            else parts = path.normalize(start).split(\'/\');\n            \n            var dirs = [];\n            for (var i = parts.length - 1; i >= 0; i--) {\n                if (parts[i] === \'node_modules\') continue;\n                var dir = parts.slice(0, i + 1).join(\'/\') + \'/node_modules\';\n                dirs.push(dir);\n            }\n            \n            return dirs;\n        }\n    };\n})();\n\nrequire.alias = function (from, to) {\n    var path = require.modules.path();\n    var res = null;\n    try {\n        res = require.resolve(from + \'/package.json\', \'/\');\n    }\n    catch (err) {\n        res = require.resolve(from, \'/\');\n    }\n    var basedir = path.dirname(res);\n    \n    var keys = (Object.keys || function (obj) {\n        var res = [];\n        for (var key in obj) res.push(key)\n        return res;\n    })(require.modules);\n    \n    for (var i = 0; i < keys.length; i++) {\n        var key = keys[i];\n        if (key.slice(0, basedir.length + 1) === basedir + \'/\') {\n            var f = key.slice(basedir.length);\n            require.modules[to + f] = require.modules[basedir + f];\n        }\n        else if (key === basedir) {\n            require.modules[to] = require.modules[basedir];\n        }\n    }\n};\n\nrequire.define = function (filename, fn) {\n    var dirname = require._core[filename]\n        ? \'\'\n        : require.modules.path().dirname(filename)\n    ;\n    \n    var require_ = function (file) {\n        return require(file, dirname)\n    };\n    require_.resolve = function (name) {\n        return require.resolve(name, dirname);\n    };\n    require_.modules = require.modules;\n    require_.define = require.define;\n    var module_ = { exports : {} };\n    \n    require.modules[filename] = function () {\n        require.modules[filename]._cached = module_.exports;\n        fn.call(\n            module_.exports,\n            require_,\n            module_,\n            module_.exports,\n            dirname,\n            filename\n        );\n        require.modules[filename]._cached = module_.exports;\n        return module_.exports;\n    };\n};\n\nif (typeof process === \'undefined\') process = {};\n\nif (!process.nextTick) process.nextTick = (function () {\n    var queue = [];\n    var canPost = typeof window !== \'undefined\'\n        && window.postMessage && window.addEventListener\n    ;\n    \n    if (canPost) {\n        window.addEventListener(\'message\', function (ev) {\n            if (ev.source === window && ev.data === \'browserify-tick\') {\n                ev.stopPropagation();\n                if (queue.length > 0) {\n                    var fn = queue.shift();\n                    fn();\n                }\n            }\n        }, true);\n    }\n    \n    return function (fn) {\n        if (canPost) {\n            queue.push(fn);\n            window.postMessage(\'browserify-tick\', \'*\');\n        }\n        else setTimeout(fn, 0);\n    };\n})();\n\nif (!process.title) process.title = \'browser\';\n\nif (!process.binding) process.binding = function (name) {\n    if (name === \'evals\') return require(\'vm\')\n    else throw new Error(\'No such module\')\n};\n\nif (!process.cwd) process.cwd = function () { return \'.\' };\n\nrequire.define("path", function (require, module, exports, __dirname, __filename) {\nfunction filter (xs, fn) {\n    var res = [];\n    for (var i = 0; i < xs.length; i++) {\n        if (fn(xs[i], i, xs)) res.push(xs[i]);\n    }\n    return res;\n}\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n  // if the path tries to go above the root, `up` ends up > 0\n  var up = 0;\n  for (var i = parts.length; i >= 0; i--) {\n    var last = parts[i];\n    if (last == \'.\') {\n      parts.splice(i, 1);\n    } else if (last === \'..\') {\n      parts.splice(i, 1);\n      up++;\n    } else if (up) {\n      parts.splice(i, 1);\n      up--;\n    }\n  }\n\n  // if the path is allowed to go above the root, restore leading ..s\n  if (allowAboveRoot) {\n    for (; up--; up) {\n      parts.unshift(\'..\');\n    }\n  }\n\n  return parts;\n}\n\n// Regex to split a filename into [*, dir, basename, ext]\n// posix version\nvar splitPathRe = /^(.+\\/(?!$)|\\/)?((?:.+?)?(\\.[^.]*)?)$/;\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\nvar resolvedPath = \'\',\n    resolvedAbsolute = false;\n\nfor (var i = arguments.length; i >= -1 && !resolvedAbsolute; i--) {\n  var path = (i >= 0)\n      ? arguments[i]\n      : process.cwd();\n\n  // Skip empty and invalid entries\n  if (typeof path !== \'string\' || !path) {\n    continue;\n  }\n\n  resolvedPath = path + \'/\' + resolvedPath;\n  resolvedAbsolute = path.charAt(0) === \'/\';\n}\n\n// At this point the path should be resolved to a full absolute path, but\n// handle relative paths to be safe (might happen when process.cwd() fails)\n\n// Normalize the path\nresolvedPath = normalizeArray(filter(resolvedPath.split(\'/\'), function(p) {\n    return !!p;\n  }), !resolvedAbsolute).join(\'/\');\n\n  return ((resolvedAbsolute ? \'/\' : \'\') + resolvedPath) || \'.\';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\nvar isAbsolute = path.charAt(0) === \'/\',\n    trailingSlash = path.slice(-1) === \'/\';\n\n// Normalize the path\npath = normalizeArray(filter(path.split(\'/\'), function(p) {\n    return !!p;\n  }), !isAbsolute).join(\'/\');\n\n  if (!path && !isAbsolute) {\n    path = \'.\';\n  }\n  if (path && trailingSlash) {\n    path += \'/\';\n  }\n  \n  return (isAbsolute ? \'/\' : \'\') + path;\n};\n\n\n// posix version\nexports.join = function() {\n  var paths = Array.prototype.slice.call(arguments, 0);\n  return exports.normalize(filter(paths, function(p, index) {\n    return p && typeof p === \'string\';\n  }).join(\'/\'));\n};\n\n\nexports.dirname = function(path) {\n  var dir = splitPathRe.exec(path)[1] || \'\';\n  var isWindows = false;\n  if (!dir) {\n    // No dirname\n    return \'.\';\n  } else if (dir.length === 1 ||\n      (isWindows && dir.length <= 3 && dir.charAt(1) === \':\')) {\n    // It is just a slash or a drive letter with a slash\n    return dir;\n  } else {\n    // It is a full dirname, strip trailing slash\n    return dir.substring(0, dir.length - 1);\n  }\n};\n\n\nexports.basename = function(path, ext) {\n  var f = splitPathRe.exec(path)[2] || \'\';\n  // TODO: make this comparison case-insensitive on windows?\n  if (ext && f.substr(-1 * ext.length) === ext) {\n    f = f.substr(0, f.length - ext.length);\n  }\n  return f;\n};\n\n\nexports.extname = function(path) {\n  return splitPathRe.exec(path)[3] || \'\';\n};\n\n});\n\nrequire.define("/compiler.js", function (require, module, exports, __dirname, __filename) {\nvar __args = process.argv.slice(2);var list_dash_union = (function(lst1,lst2){\nreturn list_dash_append(lst1,fold((function(el,acc){\nreturn (function() {if(list_dash_find(lst1,el)) {return acc;\n} else {return cons(el,acc);\n}})()\n;\n}),_emptylst,lst2));\n});\nvar list_dash_difference = (function(lst1,lst2){\nreturn fold((function(el,acc){\nreturn (function() {if(list_dash_find(lst2,el)) {return acc;\n} else {return cons(el,acc);\n}})()\n;\n}),_emptylst,lst1);\n});\nvar true_p_ = (function(x){\nreturn x;\n});\nvar false_p_ = (function(x){\nreturn not(x);\n});\nvar self_dash_evaluating_p_ = literal_p_;\nvar variable_p_ = symbol_p_;\nvar quoted_p_ = (function(expr){\nreturn eq_p_(car(expr),string_dash__gt_symbol("quote"));\n});\nvar assignment_p_ = (function(expr){\nreturn eq_p_(car(expr),string_dash__gt_symbol("set_excl_"));\n});\nvar definition_p_ = (function(expr){\nreturn eq_p_(car(expr),string_dash__gt_symbol("define"));\n});\nvar if_p_ = (function(expr){\nreturn eq_p_(car(expr),string_dash__gt_symbol("if"));\n});\nvar lambda_p_ = (function(expr){\nreturn eq_p_(car(expr),string_dash__gt_symbol("lambda"));\n});\nvar begin_p_ = (function(expr){\nreturn eq_p_(car(expr),string_dash__gt_symbol("begin"));\n});\nvar application_p_ = list_p_;\nvar text_dash_of_dash_quotation = (function(expr){\nreturn cadr(expr);\n});\nvar assignment_dash_variable = cadr;\nvar assignment_dash_value = caddr;\nvar make_dash_lambda = (function(args,body){\nreturn cons(string_dash__gt_symbol("lambda"),cons(args,body));\n});\nvar definition_dash_variable = (function(expr){\nreturn (function() {if(symbol_p_(cadr(expr))) {return cadr(expr);\n} else {return caadr(expr);\n}})()\n;\n});\nvar definition_dash_value = (function(expr){\nreturn (function() {if(symbol_p_(cadr(expr))) {return caddr(expr);\n} else {return make_dash_lambda(cdadr(expr),cddr(expr));\n}})()\n;\n});\nvar if_dash_predicate = cadr;\nvar if_dash_consequent = caddr;\nvar if_dash_alternative = (function(exp){\nreturn (function() {if(not(null_p_(cdddr(exp)))) {return car(cdddr(exp));\n} else {return false;\n}})()\n;\n});\nvar first_dash_exp = car;\nvar rest_dash_exps = cdr;\nvar last_dash_exp_p_ = (function(exp){\nreturn null_p_(cdr(exp));\n});\nvar lambda_dash_parameters = cadr;\nvar lambda_dash_body = cddr;\nvar begin_dash_actions = cdr;\nvar operator = car;\nvar operands = cdr;\nvar label_dash_counter = 0;\nvar new_dash_label_dash_counter = (function() {label_dash_counter = (label_dash_counter + 1);\nreturn label_dash_counter;\n});\nvar make_dash_label = (function(name){\nreturn string_dash__gt_symbol(str(name,new_dash_label_dash_counter()));\n});\nvar always_dash_should_dash_break = false;\nvar should_dash_break = false;\nvar breakpoint = (function(exp){\nreturn (function() {if((always_dash_should_dash_break || should_dash_break)) {return ((function() {should_dash_break = false;\nreturn list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("exp"),list(string_dash__gt_symbol("const"),exp)),list(string_dash__gt_symbol("break")));\n}))();\n} else {return list(list(string_dash__gt_symbol("nop")));\n}})()\n;\n});\nvar make_dash_instruction_dash_sequence = (function(needs,modifies,statements){\nreturn list(needs,modifies,statements);\n});\nvar empty_dash_instruction_dash_sequence = (function() {return make_dash_instruction_dash_sequence(_emptylst,_emptylst,_emptylst);\n});\nvar registers_dash_needed = (function(s){\nreturn (function() {if(symbol_p_(s)) {return _emptylst;\n} else {return car(s);\n}})()\n;\n});\nvar registers_dash_modified = (function(s){\nreturn (function() {if(symbol_p_(s)) {return _emptylst;\n} else {return cadr(s);\n}})()\n;\n});\nvar statements = (function(s){\nreturn (function() {if(symbol_p_(s)) {return list(s);\n} else {return caddr(s);\n}})()\n;\n});\nvar needs_dash_register_p_ = (function(seq,reg){\nreturn list_dash_find(registers_dash_needed(seq),reg);\n});\nvar modifies_dash_register_p_ = (function(seq,reg){\nreturn list_dash_find(registers_dash_modified(seq),reg);\n});\nvar append_dash_instruction_dash_sequences = (function(){\nvar seqs = vector_dash__gt_list(Array.prototype.slice.call(arguments, 0));\nvar append_dash_2_dash_sequences = (function(seq1,seq2){\nreturn make_dash_instruction_dash_sequence(list_dash_union(registers_dash_needed(seq1),list_dash_difference(registers_dash_needed(seq2),registers_dash_modified(seq1))),list_dash_union(registers_dash_modified(seq1),registers_dash_modified(seq2)),list_dash_append(statements(seq1),statements(seq2)));\n});\nvar append_dash_seq_dash_list = (function(seqs){\nreturn (function() {if(null_p_(seqs)) {return empty_dash_instruction_dash_sequence();\n} else {return append_dash_2_dash_sequences(car(seqs),append_dash_seq_dash_list(cdr(seqs)));\n}})()\n;\n});\nreturn append_dash_seq_dash_list(seqs);\n});\nvar preserving = (function(regs,seq1,seq2){\nreturn (function() {if(null_p_(regs)) {return append_dash_instruction_dash_sequences(seq1,seq2);\n} else {return ((function() {var o1 = (function(first_dash_reg){\nreturn (function() {if((needs_dash_register_p_(seq2,first_dash_reg) && modifies_dash_register_p_(seq1,first_dash_reg))) {return preserving(cdr(regs),make_dash_instruction_dash_sequence(list_dash_union(list(first_dash_reg),registers_dash_needed(seq1)),list_dash_difference(registers_dash_modified(seq1),list(first_dash_reg)),list_dash_append(list(list(string_dash__gt_symbol("save"),first_dash_reg)),list_dash_append(statements(seq1),list(list(string_dash__gt_symbol("restore"),first_dash_reg))))),seq2);\n} else {return preserving(cdr(regs),seq1,seq2);\n}})()\n;\n});\nvar o2 = car(regs);\nreturn o1(o2);\n}))();\n}})()\n;\n});\nvar tack_dash_on_dash_instruction_dash_sequence = (function(seq,body_dash_seq){\nreturn make_dash_instruction_dash_sequence(registers_dash_needed(seq),registers_dash_modified(seq),list_dash_append(statements(seq),statements(body_dash_seq)));\n});\nvar parallel_dash_instruction_dash_sequences = (function(seq1,seq2){\nreturn make_dash_instruction_dash_sequence(list_dash_union(registers_dash_needed(seq1),registers_dash_needed(seq2)),list_dash_union(registers_dash_modified(seq1),registers_dash_modified(seq2)),list_dash_append(statements(seq1),statements(seq2)));\n});\nvar make_dash_frame = (function(vars,vals){\nreturn zip(vars,vals);\n});\nvar enclosing_dash_environment = cdr;\nvar first_dash_frame = car;\nvar last_dash_frame = (function(env){\nreturn car(reverse(env));\n});\nvar empty_dash_environment = _emptylst;\nvar extend_dash_environment = (function(vars,vals,base_dash_env){\nreturn (function() {if(_eq__eq_(length(vars),length(vals))) {return cons(make_dash_frame(vars,vals),base_dash_env);\n} else {return (function() {if((length(vars) < length(vals))) {throw("too many arguments supplied");\n} else {throw("too few arguments supplied");\n}})()\n;\n}})()\n;\n});\nvar find_dash_frame_dash_with_dash_var = (function(varr,env){\nreturn (function() {if(_eq_(env,empty_dash_environment)) {return false;\n} else {return ((function() {var o3 = (function(frame){\nreturn (function() {if(list_dash_find(keys(frame),varr)) {return frame;\n} else {return find_dash_frame_dash_with_dash_var(varr,enclosing_dash_environment(env));\n}})()\n;\n});\nvar o4 = first_dash_frame(env);\nreturn o3(o4);\n}))();\n}})()\n;\n});\nvar lookup_dash_variable_dash_value = (function(varr,env){\nreturn ((function() {var o5 = (function(frame){\nreturn (function() {if(frame) {return dict_dash_ref(frame,varr);\n} else {throw(str("unbound variable: ",varr));\n}})()\n;\n});\nvar o6 = find_dash_frame_dash_with_dash_var(varr,env);\nreturn o5(o6);\n}))();\n});\nvar set_dash_variable_dash_value_excl_ = (function(varr,val,env){\nreturn ((function() {var o7 = (function(frame){\nreturn (function() {if(frame) {return dict_dash_put_excl_(frame,varr,val);\n} else {throw(str("unbound variable: ",varr));\n}})()\n;\n});\nvar o8 = find_dash_frame_dash_with_dash_var(varr,env);\nreturn o7(o8);\n}))();\n});\nvar define_dash_variable_excl_ = (function(varr,val,env){\nreturn dict_dash_put_excl_(first_dash_frame(env),varr,val);\n});\nvar setup_dash_environment = (function() {return extend_dash_environment(primitive_dash_procedure_dash_names(),primitive_dash_procedure_dash_objects(),empty_dash_environment);\n});\nvar install_dash_primitives = (function(procs){\nreturn ((function() {var o9 = (function(bottom){\nreturn for_dash_each((function(key){\nreturn dict_dash_put_excl_(bottom,key,make_dash_primitive_dash_procedure(dict_dash_ref(procs,key)));\n}),keys(procs));\n});\nvar o10 = last_dash_frame(global_dash_environment);\nreturn o9(o10);\n}))();\n});\nvar primitive_dash_procedures = dict(string_dash__gt_symbol("car"),car,string_dash__gt_symbol("cdr"),cdr,string_dash__gt_symbol("cons"),cons,string_dash__gt_symbol("list"),list,string_dash__gt_symbol("null_p_"),null_p_,string_dash__gt_symbol("pp"),pp,string_dash__gt_symbol("+"),(function(x,y){\nreturn (x + y);\n}),string_dash__gt_symbol("_dash_"),(function(x,y){\nreturn (x - y);\n}),string_dash__gt_symbol("*"),(function(x,y){\nreturn (x * y);\n}),string_dash__gt_symbol("_gt_"),(function(x,y){\nreturn (x > y);\n}),string_dash__gt_symbol("_lt_"),(function(x,y){\nreturn (x < y);\n}),string_dash__gt_symbol("_eq__eq_"),_eq__eq_);\nvar primitive_dash_procedure_dash_names = (function() {return keys(primitive_dash_procedures);\n});\nvar primitive_dash_procedure_dash_objects = (function() {return map(make_dash_primitive_dash_procedure,vals(primitive_dash_procedures));\n});\nvar make_dash_primitive_dash_procedure = (function(proc){\nreturn list(string_dash__gt_symbol("primitive"),proc);\n});\nvar primitive_dash_procedure_p_ = (function(proc){\nreturn eq_p_(car(proc),string_dash__gt_symbol("primitive"));\n});\nvar primitive_dash_implementation = cadr;\nvar apply_dash_primitive_dash_procedure = (function(proc,args){\nreturn apply(primitive_dash_implementation(proc),args);\n});\nvar make_dash_compiled_dash_procedure = (function(entry,env){\nreturn list(string_dash__gt_symbol("compiled_dash_procedure"),entry,env);\n});\nvar compiled_dash_procedure_p_ = (function(proc){\nreturn eq_p_(car(proc),string_dash__gt_symbol("compiled_dash_procedure"));\n});\nvar compiled_dash_procedure_dash_entry = cadr;\nvar compiled_dash_procedure_dash_env = caddr;\nvar compile_dash_linkage = (function(linkage){\nreturn (function() {if(eq_p_(linkage,string_dash__gt_symbol("return"))) {return ((function() {return make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("continue")),_emptylst,list(list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("continue")))));\n}))();\n} else {return (function() {if(eq_p_(linkage,string_dash__gt_symbol("next"))) {return ((function() {return empty_dash_instruction_dash_sequence();\n}))();\n} else {return ((function() {return make_dash_instruction_dash_sequence(_emptylst,_emptylst,list(list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("label"),linkage))));\n}))();\n}})()\n;\n}})()\n;\n});\nvar end_dash_with_dash_linkage = (function(linkage,instruction_dash_sequence){\nreturn preserving(list(string_dash__gt_symbol("continue")),instruction_dash_sequence,compile_dash_linkage(linkage));\n});\nvar compile_dash_self_dash_evaluating = (function(exp,target,linkage){\nreturn end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(_emptylst,list(target),list_dash_append(((function() {var o12 = (function(o11){\nreturn (function() {if(vector_p_(o11)) {return vector_dash__gt_list(o11);\n} else {return o11;\n}})()\n;\n});\nvar o13 = breakpoint(exp);\nreturn o12(o13);\n}))(),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("const"),exp))))));\n});\nvar compile_dash_quoted = (function(exp,target,linkage){\nreturn end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(_emptylst,list(target),list_dash_append(((function() {var o15 = (function(o14){\nreturn (function() {if(vector_p_(o14)) {return vector_dash__gt_list(o14);\n} else {return o14;\n}})()\n;\n});\nvar o16 = breakpoint(exp);\nreturn o15(o16);\n}))(),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("const"),text_dash_of_dash_quotation(exp)))))));\n});\nvar compile_dash_variable = (function(exp,target,linkage){\nreturn end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env")),list(target),list_dash_append(((function() {var o18 = (function(o17){\nreturn (function() {if(vector_p_(o17)) {return vector_dash__gt_list(o17);\n} else {return o17;\n}})()\n;\n});\nvar o19 = breakpoint(exp);\nreturn o18(o19);\n}))(),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("op"),string_dash__gt_symbol("lookup_dash_variable_dash_value")),list(string_dash__gt_symbol("const"),exp),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env")))))));\n});\nvar compile_dash_assignment = (function(exp,target,linkage){\nreturn ((function() {var o20 = (function(_var_,value_dash_code){\nreturn end_dash_with_dash_linkage(linkage,preserving(list(string_dash__gt_symbol("env")),value_dash_code,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("val")),list(target),list_dash_append(((function() {var o24 = (function(o23){\nreturn (function() {if(vector_p_(o23)) {return vector_dash__gt_list(o23);\n} else {return o23;\n}})()\n;\n});\nvar o25 = breakpoint(exp);\nreturn o24(o25);\n}))(),list(list(string_dash__gt_symbol("perform"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("set_dash_variable_dash_value_excl_")),list(string_dash__gt_symbol("const"),_var_),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env"))),list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("const"),string_dash__gt_symbol("ok"))))))));\n});\nvar o21 = assignment_dash_variable(exp);\nvar o22 = compile(assignment_dash_value(exp),string_dash__gt_symbol("val"),string_dash__gt_symbol("next"));\nreturn o20(o21,o22);\n}))();\n});\nvar compile_dash_definition = (function(exp,target,linkage){\nreturn ((function() {var o26 = (function(_var_,value_dash_code){\nreturn end_dash_with_dash_linkage(linkage,preserving(list(string_dash__gt_symbol("env")),value_dash_code,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("val")),list(target),list_dash_append(((function() {var o30 = (function(o29){\nreturn (function() {if(vector_p_(o29)) {return vector_dash__gt_list(o29);\n} else {return o29;\n}})()\n;\n});\nvar o31 = breakpoint(exp);\nreturn o30(o31);\n}))(),list(list(string_dash__gt_symbol("perform"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("define_dash_variable_excl_")),list(string_dash__gt_symbol("const"),_var_),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env"))),list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("const"),string_dash__gt_symbol("ok"))))))));\n});\nvar o27 = definition_dash_variable(exp);\nvar o28 = compile(definition_dash_value(exp),string_dash__gt_symbol("val"),string_dash__gt_symbol("next"));\nreturn o26(o27,o28);\n}))();\n});\nvar compile_dash_if = (function(exp,target,linkage){\nreturn ((function() {var o32 = (function(t_dash_branch,f_dash_branch,after_dash_if,consequent_dash_linkage,p_dash_code,c_dash_code,a_dash_code){\nreturn preserving(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("continue")),p_dash_code,append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("val")),_emptylst,list_dash_append(((function() {var o41 = (function(o40){\nreturn (function() {if(vector_p_(o40)) {return vector_dash__gt_list(o40);\n} else {return o40;\n}})()\n;\n});\nvar o42 = breakpoint(exp);\nreturn o41(o42);\n}))(),list(list(string_dash__gt_symbol("test"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("false_p_")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val"))),list(string_dash__gt_symbol("branch"),list(string_dash__gt_symbol("label"),f_dash_branch))))),parallel_dash_instruction_dash_sequences(append_dash_instruction_dash_sequences(t_dash_branch,c_dash_code),append_dash_instruction_dash_sequences(f_dash_branch,a_dash_code)),after_dash_if));\n});\nvar o33 = make_dash_label(string_dash__gt_symbol("true_dash_branch"));\nvar o34 = make_dash_label(string_dash__gt_symbol("false_dash_branch"));\nvar o35 = make_dash_label(string_dash__gt_symbol("after_dash_if"));\nvar o36 = (function() {if(eq_p_(linkage,string_dash__gt_symbol("next"))) {return o35;\n} else {return linkage;\n}})()\n;\nvar o37 = compile(if_dash_predicate(exp),string_dash__gt_symbol("val"),string_dash__gt_symbol("next"));\nvar o38 = compile(if_dash_consequent(exp),target,o36);\nvar o39 = compile(if_dash_alternative(exp),target,linkage);\nreturn o32(o33,o34,o35,o36,o37,o38,o39);\n}))();\n});\nvar compile_dash_sequence = (function(seq,target,linkage){\nreturn (function() {if(last_dash_exp_p_(seq)) {return compile(first_dash_exp(seq),target,linkage);\n} else {return preserving(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("continue")),compile(first_dash_exp(seq),target,string_dash__gt_symbol("next")),compile_dash_sequence(rest_dash_exps(seq),target,linkage));\n}})()\n;\n});\nvar compile_dash_lambda = (function(exp,target,linkage){\nreturn ((function() {var o43 = (function(proc_dash_entry,after_dash_lambda,lambda_dash_linkage){\nreturn append_dash_instruction_dash_sequences(tack_dash_on_dash_instruction_dash_sequence(end_dash_with_dash_linkage(lambda_dash_linkage,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env")),list(target),list_dash_append(((function() {var o48 = (function(o47){\nreturn (function() {if(vector_p_(o47)) {return vector_dash__gt_list(o47);\n} else {return o47;\n}})()\n;\n});\nvar o49 = breakpoint(exp);\nreturn o48(o49);\n}))(),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("op"),string_dash__gt_symbol("make_dash_compiled_dash_procedure")),list(string_dash__gt_symbol("label"),proc_dash_entry),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env"))))))),compile_dash_lambda_dash_body(exp,proc_dash_entry)),after_dash_lambda);\n});\nvar o44 = make_dash_label(string_dash__gt_symbol("entry"));\nvar o45 = make_dash_label(string_dash__gt_symbol("after_dash_lambda"));\nvar o46 = (function() {if(eq_p_(linkage,string_dash__gt_symbol("next"))) {return o45;\n} else {return linkage;\n}})()\n;\nreturn o43(o44,o45,o46);\n}))();\n});\nvar compile_dash_lambda_dash_body = (function(exp,proc_dash_entry){\nreturn ((function() {var o50 = (function(formals){\nreturn append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("proc"),string_dash__gt_symbol("arg1")),list(string_dash__gt_symbol("env")),list(proc_dash_entry,list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("env"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("compiled_dash_procedure_dash_env")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("env"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("extend_dash_environment")),list(string_dash__gt_symbol("const"),formals),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("arg1")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("env"))))),compile_dash_sequence(lambda_dash_body(exp),string_dash__gt_symbol("val"),string_dash__gt_symbol("return")));\n});\nvar o51 = lambda_dash_parameters(exp);\nreturn o50(o51);\n}))();\n});\nvar compile_dash_application = (function(exp,target,linkage){\nreturn ((function() {var o52 = (function(bp,proc_dash_code,operand_dash_codes){\nreturn preserving(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("continue")),proc_dash_code,preserving(list(string_dash__gt_symbol("proc"),string_dash__gt_symbol("continue")),construct_dash_arglist(operand_dash_codes),append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(_emptylst,_emptylst,bp),compile_dash_procedure_dash_call(exp,target,linkage))));\n});\nvar o53 = breakpoint(exp);\nvar o54 = compile(operator(exp),string_dash__gt_symbol("proc"),string_dash__gt_symbol("next"));\nvar o55 = map((function(operand){\nreturn compile(operand,string_dash__gt_symbol("val"),string_dash__gt_symbol("next"));\n}),operands(exp));\nreturn o52(o53,o54,o55);\n}))();\n});\nvar construct_dash_arglist = (function(operand_dash_codes){\nreturn ((function() {var o56 = (function(operand_dash_codes){\nreturn (function() {if(null_p_(operand_dash_codes)) {return make_dash_instruction_dash_sequence(_emptylst,list(string_dash__gt_symbol("arg1")),list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("arg1"),list(string_dash__gt_symbol("const"),_emptylst))));\n} else {return ((function() {var o58 = (function(code_dash_to_dash_get_dash_last_dash_arg){\nreturn (function() {if(null_p_(cdr(operand_dash_codes))) {return code_dash_to_dash_get_dash_last_dash_arg;\n} else {return preserving(list(string_dash__gt_symbol("env")),code_dash_to_dash_get_dash_last_dash_arg,code_dash_to_dash_get_dash_rest_dash_args(cdr(operand_dash_codes)));\n}})()\n;\n});\nvar o59 = append_dash_instruction_dash_sequences(car(operand_dash_codes),make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("val")),list(string_dash__gt_symbol("arg1")),list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("arg1"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("list")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val"))))));\nreturn o58(o59);\n}))();\n}})()\n;\n});\nvar o57 = reverse(operand_dash_codes);\nreturn o56(o57);\n}))();\n});\nvar code_dash_to_dash_get_dash_rest_dash_args = (function(operand_dash_codes){\nreturn ((function() {var o60 = (function(code_dash_for_dash_next_dash_arg){\nreturn (function() {if(null_p_(cdr(operand_dash_codes))) {return code_dash_for_dash_next_dash_arg;\n} else {return preserving(list(string_dash__gt_symbol("env")),code_dash_for_dash_next_dash_arg,code_dash_to_dash_get_dash_rest_dash_args(cdr(operand_dash_codes)));\n}})()\n;\n});\nvar o61 = preserving(list(string_dash__gt_symbol("arg1")),car(operand_dash_codes),make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("val"),string_dash__gt_symbol("arg1")),list(string_dash__gt_symbol("arg1")),list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("arg1"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("cons")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("arg1"))))));\nreturn o60(o61);\n}))();\n});\nvar compile_dash_procedure_dash_call = (function(exp,target,linkage){\nreturn ((function() {var o62 = (function(primitive_dash_branch,compiled_dash_branch,after_dash_call,compiled_dash_linkage){\nreturn append_dash_instruction_dash_sequences(make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc")),_emptylst,list(list(string_dash__gt_symbol("test"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("primitive_dash_procedure_p_")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("branch"),list(string_dash__gt_symbol("label"),primitive_dash_branch)))),parallel_dash_instruction_dash_sequences(append_dash_instruction_dash_sequences(compiled_dash_branch,compile_dash_proc_dash_app1(target,compiled_dash_linkage)),append_dash_instruction_dash_sequences(primitive_dash_branch,end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc"),string_dash__gt_symbol("arg1")),list(target),list(list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("op"),string_dash__gt_symbol("apply_dash_primitive_dash_procedure")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("arg1")))))))),after_dash_call);\n});\nvar o63 = make_dash_label(string_dash__gt_symbol("primitive_dash_branch"));\nvar o64 = make_dash_label(string_dash__gt_symbol("compiled_dash_branch"));\nvar o65 = make_dash_label(string_dash__gt_symbol("after_dash_call"));\nvar o66 = (function() {if(eq_p_(linkage,string_dash__gt_symbol("next"))) {return o65;\n} else {return linkage;\n}})()\n;\nreturn o62(o63,o64,o65,o66);\n}))();\n});\nvar compile_dash_proc_dash_app1 = (function(target,linkage){\nreturn (function() {if((eq_p_(target,string_dash__gt_symbol("val")) && not(eq_p_(linkage,string_dash__gt_symbol("return"))))) {return ((function() {return make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc")),all_dash_regs,list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("continue"),list(string_dash__gt_symbol("label"),linkage)),list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("val"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("compiled_dash_procedure_dash_entry")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")))));\n}))();\n} else {return (function() {if((not(eq_p_(target,string_dash__gt_symbol("val"))) && not(eq_p_(linkage,string_dash__gt_symbol("return"))))) {return ((function() {return make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc")),all_dash_regs,list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("continue"),list(string_dash__gt_symbol("label"),proc_dash_return)),list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("val"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("compiled_dash_procedure_dash_entry")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val"))),proc_dash_return,list(string_dash__gt_symbol("assign"),target,list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val"))),list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("label"),linkage))));\n}))();\n} else {return (function() {if((eq_p_(target,string_dash__gt_symbol("val")) && eq_p_(linkage,string_dash__gt_symbol("return")))) {return ((function() {return make_dash_instruction_dash_sequence(list(string_dash__gt_symbol("proc"),string_dash__gt_symbol("continue")),all_dash_regs,list(list(string_dash__gt_symbol("assign"),string_dash__gt_symbol("val"),list(string_dash__gt_symbol("op"),string_dash__gt_symbol("compiled_dash_procedure_dash_entry")),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("proc"))),list(string_dash__gt_symbol("goto"),list(string_dash__gt_symbol("reg"),string_dash__gt_symbol("val")))));\n}))();\n} else {return (function() {if((not(eq_p_(target,string_dash__gt_symbol("val"))) && eq_p_(linkage,string_dash__gt_symbol("return")))) {return ((function() {throw(str("compile-proc-app1: return linkage, target not val: ",target));\n}))();\n} else {return false;\n}})()\n;\n}})()\n;\n}})()\n;\n}})()\n;\n});\nvar next_p_ = (function(exp){\nreturn (list_p_(exp) && eq_p_(car(exp),string_dash__gt_symbol("next")));\n});\nvar compile_dash_next = (function(linkage){\nreturn end_dash_with_dash_linkage(linkage,make_dash_instruction_dash_sequence(_emptylst,_emptylst,list(list(string_dash__gt_symbol("next")))));\n});\nvar all_dash_regs = list(string_dash__gt_symbol("env"),string_dash__gt_symbol("proc"),string_dash__gt_symbol("val"),string_dash__gt_symbol("arg1"),string_dash__gt_symbol("continue"),string_dash__gt_symbol("exp"));\nvar compile = (function(exp,target,linkage){\nreturn (function() {if(next_p_(exp)) {return ((function() {return compile_dash_next(linkage);\n}))();\n} else {return (function() {if(self_dash_evaluating_p_(exp)) {return ((function() {return compile_dash_self_dash_evaluating(exp,target,linkage);\n}))();\n} else {return (function() {if(quoted_p_(exp)) {return ((function() {return compile_dash_quoted(exp,target,linkage);\n}))();\n} else {return (function() {if(variable_p_(exp)) {return ((function() {return compile_dash_variable(exp,target,linkage);\n}))();\n} else {return (function() {if(assignment_p_(exp)) {return ((function() {return compile_dash_assignment(exp,target,linkage);\n}))();\n} else {return (function() {if(definition_p_(exp)) {return ((function() {return compile_dash_definition(exp,target,linkage);\n}))();\n} else {return (function() {if(if_p_(exp)) {return ((function() {return compile_dash_if(exp,target,linkage);\n}))();\n} else {return (function() {if(lambda_p_(exp)) {return ((function() {return compile_dash_lambda(exp,target,linkage);\n}))();\n} else {return (function() {if(begin_p_(exp)) {return ((function() {return compile_dash_sequence(begin_dash_actions(exp),target,linkage);\n}))();\n} else {return (function() {if(application_p_(exp)) {return ((function() {return (function() {if(eq_p_(car(exp),string_dash__gt_symbol("break"))) {return ((function() {should_dash_break = true;\nreturn empty_dash_instruction_dash_sequence();\n}))();\n} else {return compile_dash_application(exp,target,linkage);\n}})()\n;\n}))();\n} else {return ((function() {throw(str("compiler: unknown expression type",exp));\n}))();\n}})()\n;\n}})()\n;\n}})()\n;\n}})()\n;\n}})()\n;\n}})()\n;\n}})()\n;\n}})()\n;\n}})()\n;\n}})()\n;\n});\nvar runtime_dash_ops = dict(string_dash__gt_symbol("make_dash_compiled_dash_procedure"),make_dash_compiled_dash_procedure,string_dash__gt_symbol("compiled_dash_procedure_p_"),compiled_dash_procedure_p_,string_dash__gt_symbol("compiled_dash_procedure_dash_env"),compiled_dash_procedure_dash_env,string_dash__gt_symbol("compiled_dash_procedure_dash_entry"),compiled_dash_procedure_dash_entry,string_dash__gt_symbol("extend_dash_environment"),extend_dash_environment,string_dash__gt_symbol("lookup_dash_variable_dash_value"),lookup_dash_variable_dash_value,string_dash__gt_symbol("define_dash_variable_excl_"),define_dash_variable_excl_,string_dash__gt_symbol("list"),list,string_dash__gt_symbol("cons"),cons,string_dash__gt_symbol("primitive_dash_procedure_p_"),primitive_dash_procedure_p_,string_dash__gt_symbol("apply_dash_primitive_dash_procedure"),apply_dash_primitive_dash_procedure,string_dash__gt_symbol("false_p_"),false_p_,string_dash__gt_symbol("true_p_"),true_p_);\nvar global_dash_environment = setup_dash_environment();\nmodule.exports = dict(string_dash__gt_symbol("compile"),(function(src){\nreturn statements(compile(src,string_dash__gt_symbol("val"),string_dash__gt_symbol("next")));\n}),string_dash__gt_symbol("ops"),runtime_dash_ops,string_dash__gt_symbol("first_dash_frame"),first_dash_frame,string_dash__gt_symbol("install_dash_primitives"),install_dash_primitives,string_dash__gt_symbol("stepping_dash_mode"),(function() {always_dash_should_dash_break = true;\n}),string_dash__gt_symbol("global_dash_environment"),global_dash_environment);\n\n\n});\n\nrequire.define("/machine.js", function (require, module, exports, __dirname, __filename) {\nvar __args = process.argv.slice(2);var fs = require("fs");var compiler = require("./compiler");var make_dash_machine = (function(regs,ops,controller){\nreturn ((function() {var o1 = (function(machine){\nfor_dash_each((function(reg){\nreturn machine.allocate_dash_register(reg);\n}),regs);\nmachine.install_dash_operations(ops);\nmachine.install_dash_instruction_dash_sequence(assemble(controller,machine));\nreturn machine;\n});\nvar o2 = make_dash_new_dash_machine();\nreturn o1(o2);\n}))();\n});\nvar make_dash_register = (function() {return ((function() {var o3 = (function(contents){\nreturn dict(string_dash__gt_symbol("get"),(function() {return contents;\n}),string_dash__gt_symbol("set_excl_"),(function(val){\ncontents = val;\n}));\n});\nvar o4 = string_dash__gt_symbol("_unassigned_");\nreturn o3(o4);\n}))();\n});\nvar make_dash_stack = (function() {return ((function() {var o5 = (function(s){\nreturn dict(string_dash__gt_symbol("push"),(function(x){\ns = cons(x,s);\n}),string_dash__gt_symbol("pop_excl_"),(function() {return (function() {if(null_p_(s)) {throw("pop: empty stack");\n} else {return ((function() {var o7 = (function(top){\ns = cdr(s);\nreturn top;\n});\nvar o8 = car(s);\nreturn o7(o8);\n}))();\n}})()\n;\n}),string_dash__gt_symbol("initialize"),(function() {s = _emptylst;\n}));\n});\nvar o6 = _emptylst;\nreturn o5(o6);\n}))();\n});\nvar make_dash_new_dash_machine = (function() {return ((function() {var o9 = (function(pc,flag,stack,instruction_dash_sequence,paused,on_dash_break){\nreturn ((function() {var o16 = (function(ops,reg_dash_table){\nvar allocate_dash_register = (function(name){\nreturn (function() {if(list_dash_find(keys(reg_dash_table),name)) {throw(str("register already defined: ",name));\n} else {return dict_dash_put_excl_(reg_dash_table,name,make_dash_register());\n}})()\n;\n});\nvar lookup_dash_register = (function(name){\nreturn (function() {if(list_dash_find(keys(reg_dash_table),name)) {return dict_dash_ref(reg_dash_table,name);\n} else {throw(str("unknown register: ",name));\n}})()\n;\n});\nvar pause = (function() {paused = true;\nreturn (function() {if(on_dash_break) {return on_dash_break();\n} else {return false;\n}})()\n;\n});\nvar execute = (function() {return ((function() {var loop = (function() {return ((function() {var o19 = (function(insts){\nreturn (function() {if(null_p_(insts)) {return string_dash__gt_symbol("done");\n} else {return ((function() {var o21 = (function(inst){\nreturn (function() {if(not(paused)) {return ((function() {var o23 = (function(proc){\n(function() {if(proc) {return proc();\n} else {throw(str("invalid exec proc: ",proc));\n}})()\n;\nreturn vector("__tco_call",(function() {return loop();\n}));\n});\nvar o24 = instruction_dash_exec_dash_proc(inst);\nreturn o23(o24);\n}))();\n} else {return false;\n}})()\n;\n});\nvar o22 = car(insts);\nreturn o21(o22);\n}))();\n}})()\n;\n});\nvar o20 = pc.get();\nreturn o19(o20);\n}))();\n});\nreturn trampoline(loop());\n}))();\n});\nreturn dict(string_dash__gt_symbol("start"),(function() {pc.set_excl_(instruction_dash_sequence);\nreturn execute();\n}),string_dash__gt_symbol("install_dash_instruction_dash_sequence"),(function(seq){\ninstruction_dash_sequence = seq;\n}),string_dash__gt_symbol("allocate_dash_register"),allocate_dash_register,string_dash__gt_symbol("get_dash_register"),lookup_dash_register,string_dash__gt_symbol("install_dash_operations"),(function(dct){\nops = dict_dash_merge(ops,dct);\n}),string_dash__gt_symbol("stack"),(function() {return stack;\n}),string_dash__gt_symbol("operations"),(function() {return ops;\n}),string_dash__gt_symbol("registers"),(function() {return keys(reg_dash_table);\n}),string_dash__gt_symbol("pause"),pause,string_dash__gt_symbol("proceed"),(function() {paused = false;\nreturn execute();\n}),string_dash__gt_symbol("set_dash_break_dash_handler"),(function(func){\non_dash_break = func;\n}),string_dash__gt_symbol("on_dash_input"),(function(txt){\nreturn ((function() {var o25 = (function(exp){\n(function() {if(eq_p_(car(exp),string_dash__gt_symbol("read_dash_into_dash_reg"))) {return ((function() {var o27 = (function(reg){\nreturn reg.set_excl_(read(txt));\n});\nvar o28 = lookup_dash_register(cadr(exp));\nreturn o27(o28);\n}))();\n} else {return false;\n}})()\n;\nadvance_dash_pc(pc);\nstop_dash_stdin();\npaused = false;\nreturn execute();\n});\nvar o26 = instruction_dash_text(car(pc.get()));\nreturn o25(o26);\n}))();\n}));\n});\nvar o17 = dict(string_dash__gt_symbol("initialize_dash_stack"),stack.initialize);\nvar o18 = dict(string_dash__gt_symbol("flag"),flag,string_dash__gt_symbol("pc"),pc);\nreturn o16(o17,o18);\n}))();\n});\nvar o10 = make_dash_register();\nvar o11 = make_dash_register();\nvar o12 = make_dash_stack();\nvar o13 = _emptylst;\nvar o14 = false;\nvar o15 = false;\nreturn o9(o10,o11,o12,o13,o14,o15);\n}))();\n});\nvar get_dash_register_dash_contents = (function(machine,name){\nreturn dict_dash_ref(machine.get_dash_register(name),string_dash__gt_symbol("get"))();\n});\nvar set_dash_register_dash_contents_excl_ = (function(machine,name,val){\nreturn dict_dash_ref(machine.get_dash_register(name),string_dash__gt_symbol("set_excl_"))(val);\n});\nvar assemble = (function(controller,machine){\nreturn extract_dash_labels(controller,(function(insts,labels){\nupdate_dash_insts_excl_(insts,labels,machine);\nreturn insts;\n}));\n});\nvar extract_dash_labels = (function(text,receive){\nreturn (function() {if(null_p_(text)) {return receive(_emptylst,_emptylst);\n} else {return extract_dash_labels(cdr(text),(function(insts,labels){\nreturn ((function() {var o29 = (function(next_dash_inst){\nreturn (function() {if(symbol_p_(next_dash_inst)) {return receive(insts,cons(make_dash_label_dash_entry(next_dash_inst,insts),labels));\n} else {return receive(cons(make_dash_instruction(next_dash_inst),insts),labels);\n}})()\n;\n});\nvar o30 = car(text);\nreturn o29(o30);\n}))();\n}));\n}})()\n;\n});\nvar update_dash_insts_excl_ = (function(insts,labels,machine){\nreturn ((function() {var o31 = (function(pc,flag,stack,ops){\nfor_dash_each((function(inst){\nreturn set_dash_instruction_dash_exec_dash_proc_excl_(inst,make_dash_execution_dash_procedure(instruction_dash_text(inst),labels,machine,pc,flag,stack,ops));\n}),insts);\nreturn for_dash_each((function(label){\nreturn ((function() {var o36 = (function(i){\nreturn for_dash_each((function(inst){\nset_dash_instruction_dash_label_excl_(inst,label_dash_entry_dash_name(label));\nset_dash_instruction_dash_line_dash_number_excl_(inst,i);\ni = (i + 1);\n}),label_dash_insts(label));\n});\nvar o37 = 0;\nreturn o36(o37);\n}))();\n}),labels);\n});\nvar o32 = machine.get_dash_register(string_dash__gt_symbol("pc"));\nvar o33 = machine.get_dash_register(string_dash__gt_symbol("flag"));\nvar o34 = machine.stack();\nvar o35 = machine.operations();\nreturn o31(o32,o33,o34,o35);\n}))();\n});\nvar make_dash_instruction = (function(text){\nreturn vector(text,_emptylst,false,false);\n});\nvar instruction_dash_text = (function(inst){\nreturn vector_dash_ref(inst,0);\n});\nvar instruction_dash_exec_dash_proc = (function(inst){\nreturn vector_dash_ref(inst,1);\n});\nvar instruction_dash_label = (function(inst){\nreturn vector_dash_ref(inst,2);\n});\nvar instruction_dash_line_dash_number = (function(inst){\nreturn vector_dash_ref(inst,3);\n});\nvar set_dash_instruction_dash_exec_dash_proc_excl_ = (function(inst,proc){\nreturn vector_dash_put_excl_(inst,1,proc);\n});\nvar set_dash_instruction_dash_label_excl_ = (function(inst,label){\nreturn vector_dash_put_excl_(inst,2,label);\n});\nvar set_dash_instruction_dash_line_dash_number_excl_ = (function(inst,n){\nreturn vector_dash_put_excl_(inst,3,n);\n});\nvar make_dash_label_dash_entry = (function(label,insts){\nreturn vector(label,insts);\n});\nvar label_dash_entry_dash_name = (function(label){\nreturn vector_dash_ref(label,0);\n});\nvar label_dash_insts = (function(label){\nreturn vector_dash_ref(label,1);\n});\nvar lookup_dash_label = (function(labels,name){\nreturn ((function() {var o38 = (function(lst){\nreturn (function() {if(lst) {return vector_dash_ref(car(lst),1);\n} else {throw(str("undefined label: ",name));\n}})()\n;\n});\nvar o39 = list_dash_find(labels,name,(function(v){\nreturn vector_dash_ref(v,0);\n}));\nreturn o38(o39);\n}))();\n});\nvar advance_dash_pc = (function(pc){\nreturn pc.set_excl_(cdr(pc.get()));\n});\nvar make_dash_execution_dash_procedure = (function(inst,labels,machine,pc,flag,stack,ops){\nreturn ((function() {var o40 = (function(top){\nreturn (function() {if(_eq__eq_(top,string_dash__gt_symbol("assign"))) {return ((function() {return make_dash_assign(inst,machine,labels,ops,pc);\n}))();\n} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("test"))) {return ((function() {return make_dash_test(inst,machine,labels,ops,flag,pc);\n}))();\n} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("branch"))) {return ((function() {return make_dash_branch(inst,machine,labels,flag,pc);\n}))();\n} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("goto"))) {return ((function() {return make_dash_goto(inst,machine,labels,pc);\n}))();\n} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("save"))) {return ((function() {return make_dash_save(inst,machine,stack,pc);\n}))();\n} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("restore"))) {return ((function() {return make_dash_restore(inst,machine,stack,pc);\n}))();\n} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("perform"))) {return ((function() {return make_dash_perform(inst,machine,labels,ops,pc);\n}))();\n} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("read_dash_into_dash_reg"))) {return ((function() {return make_dash_read(inst,machine,pc);\n}))();\n} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("break"))) {return ((function() {return make_dash_break(machine,pc);\n}))();\n} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("next"))) {return ((function() {return make_dash_next(machine,pc);\n}))();\n} else {return (function() {if(_eq__eq_(top,string_dash__gt_symbol("nop"))) {return ((function() {return make_dash_nop(machine,pc);\n}))();\n} else {return false;\n}})()\n;\n}})()\n;\n}})()\n;\n}})()\n;\n}})()\n;\n}})()\n;\n}})()\n;\n}})()\n;\n}})()\n;\n}})()\n;\n}})()\n;\n});\nvar o41 = car(inst);\nreturn o40(o41);\n}))();\n});\nvar make_dash_assign = (function(inst,machine,labels,ops,pc){\nreturn ((function() {var o42 = (function(target,expr){\nreturn ((function() {var o45 = (function(value_dash_proc){\nreturn (function() {target.set_excl_(value_dash_proc());\nreturn advance_dash_pc(pc);\n});\n});\nvar o46 = (function() {if(operation_dash_exp_p_(expr)) {return make_dash_operation_dash_exp(expr,machine,labels,ops);\n} else {return make_dash_primitive_dash_exp(car(expr),machine,labels);\n}})()\n;\nreturn o45(o46);\n}))();\n});\nvar o43 = machine.get_dash_register(cadr(inst));\nvar o44 = cddr(inst);\nreturn o42(o43,o44);\n}))();\n});\nvar make_dash_test = (function(inst,machine,labels,ops,flag,pc){\nreturn ((function() {var o47 = (function(condition){\nreturn (function() {if(operation_dash_exp_p_(condition)) {return ((function() {var o49 = (function(condition_dash_proc){\nreturn (function() {flag.set_excl_(condition_dash_proc());\nreturn advance_dash_pc(pc);\n});\n});\nvar o50 = make_dash_operation_dash_exp(condition,machine,labels,ops);\nreturn o49(o50);\n}))();\n} else {throw(str("bad test instruction:",inst));\n}})()\n;\n});\nvar o48 = cdr(inst);\nreturn o47(o48);\n}))();\n});\nvar make_dash_branch = (function(inst,machine,labels,flag,pc){\nreturn ((function() {var o51 = (function(dest){\nreturn (function() {if(label_dash_exp_p_(dest)) {return ((function() {var o53 = (function(insts){\nreturn (function() {return (function() {if(flag.get()) {return pc.set_excl_(insts);\n} else {return advance_dash_pc(pc);\n}})()\n;\n});\n});\nvar o54 = lookup_dash_label(labels,label_dash_exp_dash_label(dest));\nreturn o53(o54);\n}))();\n} else {throw(str("bad branch instruction: ",inst));\n}})()\n;\n});\nvar o52 = cadr(inst);\nreturn o51(o52);\n}))();\n});\nvar make_dash_goto = (function(inst,machine,labels,pc){\nreturn ((function() {var o55 = (function(dest){\nreturn (function() {if(label_dash_exp_p_(dest)) {return ((function() {return ((function() {var o57 = (function(insts){\nreturn (function() {return pc.set_excl_(insts);\n});\n});\nvar o58 = lookup_dash_label(labels,label_dash_exp_dash_label(dest));\nreturn o57(o58);\n}))();\n}))();\n} else {return (function() {if(register_dash_exp_p_(dest)) {return ((function() {return ((function() {var o59 = (function(reg){\nreturn (function() {return pc.set_excl_(reg.get());\n});\n});\nvar o60 = machine.get_dash_register(register_dash_exp_dash_reg(dest));\nreturn o59(o60);\n}))();\n}))();\n} else {return ((function() {throw(str("bad goto instruction: ",inst));\n}))();\n}})()\n;\n}})()\n;\n});\nvar o56 = cadr(inst);\nreturn o55(o56);\n}))();\n});\nvar make_dash_save = (function(inst,machine,stack,pc){\nreturn ((function() {var o61 = (function(reg){\nreturn (function() {stack.push(reg.get());\nreturn advance_dash_pc(pc);\n});\n});\nvar o62 = machine.get_dash_register(cadr(inst));\nreturn o61(o62);\n}))();\n});\nvar make_dash_restore = (function(inst,machine,stack,pc){\nreturn ((function() {var o63 = (function(reg){\nreturn (function() {reg.set_excl_(stack.pop_excl_());\nreturn advance_dash_pc(pc);\n});\n});\nvar o64 = machine.get_dash_register(cadr(inst));\nreturn o63(o64);\n}))();\n});\nvar make_dash_perform = (function(inst,machine,labels,ops,pc){\nreturn ((function() {var o65 = (function(action){\nreturn (function() {if(operation_dash_exp_p_(action)) {return ((function() {var o67 = (function(action_dash_proc){\nreturn (function() {action_dash_proc();\nreturn advance_dash_pc(pc);\n});\n});\nvar o68 = make_dash_operation_dash_exp(action,machine,labels,ops);\nreturn o67(o68);\n}))();\n} else {throw(str("bad perform instruction: ",inst));\n}})()\n;\n});\nvar o66 = cdr(inst);\nreturn o65(o66);\n}))();\n});\nvar make_dash_read = (function(inst,machine,pc){\nreturn ((function() {var o69 = (function(reg){\nreturn (function() {start_dash_stdin(string_dash__gt_symbol("repl"));\nreturn machine.pause();\n});\n});\nvar o70 = machine.get_dash_register(cadr(inst));\nreturn o69(o70);\n}))();\n});\nvar make_dash_break = (function(machine,pc){\nreturn (function() {advance_dash_pc(pc);\nstart_dash_stdin(string_dash__gt_symbol("break"));\nprintln(str("break: ",get_dash_register_dash_contents(machine,string_dash__gt_symbol("exp"))));\nreturn machine.pause();\n});\n});\nvar make_dash_next = (function(machine,pc){\nreturn (function() {advance_dash_pc(pc);\nmachine.pause();\nreturn setTimeout((function() {return machine.proceed();\n}),1);\n});\n});\nvar make_dash_nop = (function(machine,pc){\nreturn (function() {return advance_dash_pc(pc);\n});\n});\nvar make_dash_primitive_dash_exp = (function(exp,machine,labels){\nreturn (function() {if(const_dash_exp_p_(exp)) {return ((function() {return ((function() {var o71 = (function(c){\nreturn (function() {return c;\n});\n});\nvar o72 = cadr(exp);\nreturn o71(o72);\n}))();\n}))();\n} else {return (function() {if(label_dash_exp_p_(exp)) {return ((function() {return ((function() {var o73 = (function(insts){\nreturn (function() {return insts;\n});\n});\nvar o74 = lookup_dash_label(labels,cadr(exp));\nreturn o73(o74);\n}))();\n}))();\n} else {return (function() {if(register_dash_exp_p_(exp)) {return ((function() {return ((function() {var o75 = (function(r){\nreturn (function() {return r.get();\n});\n});\nvar o76 = machine.get_dash_register(cadr(exp));\nreturn o75(o76);\n}))();\n}))();\n} else {return ((function() {throw(str("unknown expression type: ",exp));\n}))();\n}})()\n;\n}})()\n;\n}})()\n;\n});\nvar label_dash_exp_p_ = (function(exp){\nreturn (list_p_(exp) && _eq__eq_(car(exp),string_dash__gt_symbol("label")));\n});\nvar label_dash_exp_dash_label = (function(exp){\nreturn cadr(exp);\n});\nvar register_dash_exp_p_ = (function(exp){\nreturn (list_p_(exp) && _eq__eq_(car(exp),string_dash__gt_symbol("reg")));\n});\nvar register_dash_exp_dash_reg = (function(exp){\nreturn cadr(exp);\n});\nvar const_dash_exp_p_ = (function(exp){\nreturn (list_p_(exp) && _eq__eq_(car(exp),string_dash__gt_symbol("const")));\n});\nvar const_dash_exp_dash_value = (function(exp){\nreturn cadr(exp);\n});\nvar make_dash_operation_dash_exp = (function(exp,machine,labels,ops){\nreturn ((function() {var o77 = (function(op,aprocs){\nreturn (function() {return apply(op,map((function(p){\nreturn p();\n}),aprocs));\n});\n});\nvar o78 = lookup_dash_prim(cadar(exp),ops);\nvar o79 = map((function(e){\nreturn make_dash_primitive_dash_exp(e,machine,labels);\n}),cdr(exp));\nreturn o77(o78,o79);\n}))();\n});\nvar operation_dash_exp_p_ = (function(exp){\nreturn (list_p_(exp) && eq_p_(car(car(exp)),string_dash__gt_symbol("op")));\n});\nvar lookup_dash_prim = (function(sym,ops){\nreturn ((function() {var o80 = (function(prim){\n(function() {if(not(prim)) {throw(str("unknown operation: ",sym));\n} else {return false;\n}})()\n;\nreturn prim;\n});\nvar o81 = dict_dash_ref(ops,sym);\nreturn o80(o81);\n}))();\n});\nvar stdin_dash_mode = false;\nvar start_dash_stdin = (function(mode){\nstdin_dash_mode = mode;\nreturn get_dash_stdin_dash_handler()();\n});\nvar stdin_dash_handler = (function() {return process.stdin.resume();\n});\nvar get_dash_stdin_dash_handler = (function() {return stdin_dash_handler;\n});\nvar set_dash_stdin_dash_handler_excl_ = (function(func){\nstdin_dash_handler = func;\n});\nvar stop_dash_stdin = (function() {return process.stdin.pause();\n});\nprocess.stdin.on("data",(function(txt){\nreturn ((function() {var o82 = (function(txt){\nreturn (function() {if(_eq_(stdin_dash_mode,string_dash__gt_symbol("repl"))) {return ((function() {return on_dash_repl_dash_input(txt);\n}))();\n} else {return (function() {if(_eq_(stdin_dash_mode,string_dash__gt_symbol("break"))) {return ((function() {return on_dash_break_dash_input(txt);\n}))();\n} else {return false;\n}})()\n;\n}})()\n;\n});\nvar o83 = (txt + "");\nreturn o82(o83);\n}))();\n}));\nprocess.stdin.pause();\nvar continue_dash_machine = (function() {process.stdin.pause();\nreturn current_dash_machine.proceed();\n});\nvar inspect_dash_var = (function(v){\nreturn inspect(v);\n});\nvar inspect_dash_environment = (function() {return ((function() {var o84 = (function(frame){\nreturn fold((function(k,acc){\nreturn ((function() {var o86 = (function(v,v){\nreturn (acc + str(k,": ",v,"\\n"));\n});\nvar o87 = dict_dash_ref(frame,k);\nvar o88 = inspect_dash_var(o87);\nreturn o86(o87,o88);\n}))();\n}),"",keys(frame));\n});\nvar o85 = compiler.first_dash_frame(get_dash_register_dash_contents(current_dash_machine,string_dash__gt_symbol("env")));\nreturn o84(o85);\n}))();\n});\nvar debugger_dash_handle = (function(txt){\nreturn ((function() {var o89 = (function(txt){\nreturn (function() {if(_eq_(txt,"v")) {return ((function() {return println(inspect_dash_environment());\n}))();\n} else {return ((function() {return continue_dash_machine();\n}))();\n}})()\n;\n});\nvar o90 = txt.trim();\nreturn o89(o90);\n}))();\n});\nvar current_dash_machine = false;\nvar on_dash_repl_dash_input = (function(txt){\nreturn current_dash_machine.on_dash_input(txt);\n});\nvar on_dash_break_dash_input = debugger_dash_handle;\nvar feed_dash_asm = (function(src){\nreturn ((function() {var o91 = (function(machine){\nset_dash_register_dash_contents_excl_(machine,string_dash__gt_symbol("env"),compiler.global_dash_environment);\ncurrent_dash_machine = machine;\nreturn machine;\n});\nvar o92 = make_dash_machine(list(string_dash__gt_symbol("env"),string_dash__gt_symbol("proc"),string_dash__gt_symbol("val"),string_dash__gt_symbol("arg1"),string_dash__gt_symbol("continue"),string_dash__gt_symbol("input"),string_dash__gt_symbol("exp")),compiler.ops,src);\nreturn o91(o92);\n}))();\n});\nmodule.exports = dict(string_dash__gt_symbol("feed_dash_asm"),feed_dash_asm,string_dash__gt_symbol("set_dash_stdin_dash_handler_excl_"),set_dash_stdin_dash_handler_excl_,string_dash__gt_symbol("instance"),(function() {return current_dash_machine;\n}),string_dash__gt_symbol("inspect_dash_environment"),inspect_dash_environment,string_dash__gt_symbol("get_dash_register_dash_contents"),get_dash_register_dash_contents,string_dash__gt_symbol("result"),(function() {return get_dash_register_dash_contents(current_dash_machine,string_dash__gt_symbol("val"));\n}));\n\n\n});\n\nrequire.define("fs", function (require, module, exports, __dirname, __filename) {\n// nothing to see here... no file methods for the browser\n\n});\n\nrequire.define("/vm.js", function (require, module, exports, __dirname, __filename) {\n    var __args = process.argv.slice(2);var compiler = require("./compiler");var machine = require("./machine");var run = (function(src){\nreturn ((function() {var o1 = (function(statements,m){\nm.set_dash_break_dash_handler(break_dash_handler);\nreturn m.start();\n});\nvar o2 = compiler.compile(src);\nvar o3 = machine.feed_dash_asm(o2);\nreturn o1(o2,o3);\n}))();\n});\nvar resume = (function() {return ((function() {var o4 = (function(m){\nreturn m.proceed();\n});\nvar o5 = machine.instance();\nreturn o4(o5);\n}))();\n});\nvar asm = (function(src){\nreturn pp(compiler.compile(src));\n});\nvar break_dash_handler = false;\nvar set_dash_break_dash_handler = (function(func){\nbreak_dash_handler = func;\n});\nvar install_dash_primitives = (function(procs){\nreturn compiler.install_dash_primitives(procs);\n});\nmodule.exports = dict(string_dash__gt_symbol("run"),run,string_dash__gt_symbol("asm"),asm,string_dash__gt_symbol("stepping_dash_mode"),compiler.stepping_dash_mode,string_dash__gt_symbol("set_dash_break_dash_handler"),set_dash_break_dash_handler,string_dash__gt_symbol("install_dash_primitives"),install_dash_primitives);\n\n\n});\nrequire("/vm.js");\n', 'message': "Merge branch 'symbols'\n", 'author_name': 'James Long', 'lang': 'js'}