let rec concatenate_with_no_copy list1 list2 = match list1 with [] -> list2 | head::tail -> insert_with_no_copy head (concatenate_with_no_copy tail list2)