I’m afraid the only way to deeply learn why things are so is to actually study them 🙂 Sometimes you even need to try to design them yourself. Go ahead, design it without implicit parameter and with return type. How compiler should compile the body of the method and how call site should look like.