Pi copy tracks dest ancestors, and detects infinite type when trying to copy into child of src