[eluser]tonydewan[/eluser]
@kuroir Sounds like a good idea! I would recommend just using Carabiner internally, and providing pass through methods in your library. That way, as changes are made to Carabiner, you can just update the copy you distribute with your lib, and gain any new functionality without having to worry about it.
If you do decide to pull out the Carabiner methods and use them completely in your library, I would recommend taking them all. At the very least, all of the methods that begin with an underscore are private (internal) methods, and are used heavily by each other.