fixed potential env destruction (define may destroy another env toughtugh a syntactic closure