ast = $ast; $this->tempEnv = $tempEnv; $this->bindings = $bindings; } public function getAst() { return $this->ast; } public function getBindings(): Seq { return $this->bindings; } public function getEnv(array $args) { $newEnv = new Env('apply', $this->tempEnv); Util::bindArguments($newEnv, $this->bindings->getData(), $args); return $newEnv; } public function call(array $args) { return ($this->closure)(...$args); } }