Imagine you're encoding morse in a protocol that has only an instant pulse. you can't do a dash, only dots.

But you can encode a dot as two dots with a short gap between them, and a dash by two dots with a long gap between them.

And you can of course merge adjacent dots: V is ···-, but you don't need eight dots to represent that, you need 5:
dot-short-dot-short-dot-short-dot-long-dot

and an extra-long gap between two dots is a space

if my math is correct, you encode "hello world" in 39 dots

this was originally going to be a math problem but I think I figured it out by the end, so I just posted it in case anyone found it interesting or can point out a way I'm fucking up.

I'm a bit sleep-deprived at the moment so I could easily be very wrong

@foone You're not fucking up but I'll just point out that the natural result of your point that 'neighboring dots can be merged' is that it is the spaces/pauses which encode the message not the dots :)