public void invokeFunc(String name, int len) {
        FunDecl funDecl = lookupFunc(name, len);
        if(funDecl.arity() != len)
            throw new RuntimeException("Wrong arity expected: " + funDecl.arity() + ", got: " + len);
        EvalContext subContext = subContext();
        log("...>>InvokeFunc(" + name + ") depth: " + subContext.depth() + " // " + id + "@" + subContext.id);
        funDecl.eval(subContext);
        log("...<<InvokeFunc(" + name + ") depth: " + subContext.depth() + " // " + id + "@" + subContext.id);
        subContext.release();
    }