record List(value:Int, next:UniqueValue[List]); callbyname overload List(value:Int) = List(value, nullUniqueValue(List)); callbyname overload List(value:Int, next:List) = List(value, UniqueValue(next)); main() { var x = List(1, List(2, List(3))); x = move(x.next^.next^); }