This happens easily when writing actor based code where you often have a set of
messages defined like this:
case class Start(arg: Int)
case object Stop
If you now use `Start` without the argument in pattern matches (like in `receive`) or
message sends (`self ! Start`) your code may fail silently because you are sending the
companion object around which is rarely what you want to do.