fn enter_scope(&mut self, scope: Scope) {
        // let ffi = mem::replace(&mut self.ffi, FFI::new());
        let nested = Compiler::base(scope);
        let enclosing = mem::replace(self, nested);
        self.enclosing = Some(Box::new(enclosing));
    }
Replace the current compiler with a fresh one,
keeping a reference to the old one in `self.enclosing`,
and moving the FFI into the current compiler.
passerine/src/compiler/compile.rs