updated scheme code for occurs-free?