If you're wondering what a leaky abstraction looks like to a user, this is a great example: https://ohshitgit.com/
It's a set of human needs plus the `git` incantations that satisfy those needs. I've had people try to explain to me that if only I understand [sounds of modems screeching] about git I'll be fine. But if to get a common user task done I have to understand the depths of the implementation, then it's a bad UI.