deepextend; removed cycle test in favour of unsuprising behaviour in normal cases