Hi. I'm struggling to understand the no-cloning theorem and its consequences. It says that if we construct a cloning operator U it will be able to just copy orthogonal states, but I don't fully grasp what is meant by that, both abstractly and practically. My questions: 1) Does it mean that if we construct a device that implements said operator it will only be successful when the input state is one of a given set of states (different for every such device, and dependent on its mechanism) that are orthogonal to one another? What would happen if we used the device with another state, say one that is a linear combination of two of such states? 2) Tthere's an exercise on Nielsen's book that asks me to show that a device that could distinguish between non-orthogonal states (that is, it can tell if a system is in the state ##|\psi \rangle ## or the state ##|\phi \rangle## even when ## \langle\psi | \phi \rangle ≠ 0##) then it could clone general states, and viceversa. The only solution I've come up with is: If we had a way of distinguishing non-orthogonal states we could use it to find out what state a system is in and then prepare another qubit in the same state, thus cloning it. Conversely, if we had a general cloning device we could clone a qubit a large number of times and then perform measurements on all its copies to find what state is in. Both these answers seem kind of "inelegant" to me, and I'm not even sure there are correct. Is there any cleaner solution to this problem? Thank you for your time.