well you suspect wrong
I entirely expect, and DESIRE for libraries to use libraries. But it's not working, at least not without a considerable amount of fight. I don't care if the user sees one of my libraries depending on another one of my libraries, that's how it SHOULD work. Not being able to compile without an "ugly hack" on their end however, is fast approaching unacceptable.http://vftp.net/arduino/issues/libraries_using_libraries/
Install those two libraries, and try to run the debouncer_example sketch. The symlinks will probably appear as zero-byte files in the Debouncer folder, you may need to remove them before attempting to compile.
I've been writing reusable code for going on 20 years, and I know the value of writing reusable code, and of making libraries so it's not necessary to edit 10 programs because I made an improvement to a bit of shared code. Arduino does user libraries, but is making it something of a pain to allow one library to use another. I want to be able to stack my blocks vertically, not just horizontally, if you know what i mean. Right now my libraries can only go one level deep, and without proper library dependency, a single composite library can quickly get out of control.
As for "hiding", one thing I strongly desire is to make my code easy for *others* to reuse, as well as myself. While the hack of symlinking my libraries together works for me, it's not nearly as clear to others. They should be able to download my sketch and my libraries, install them normally, and GO. Not have to dig in and modify the libraries (likely entering commands and following instructions they're unfamiliar with) to get it to compile. So I'm hoping someone knows a fix I can make in the code so the issue disappears from view.
ps while the semaphore is fairly well debugged, the debouncer was just recently extracted from a sketch and transformed into a library and may still have issues. It's kinda hard to test as a library when it doesn't work. So I'll get on that today now that I have a hack-around. I'm going to make a conceited effort this week to convert as much of my shared code to libraries. I have some bits that are shared by a dozen or more sketches, and I know the code in many of them is out of date because I've fixed/improved it in one sketch and those improvements didn't get copied to other sketches. But this process depends to a degree on stacking libraries.