There are a number of error cases that copy_file(from, to, ...) does not take into account. Specifically the cases where:
These error cases should be specified as such.