When you create languages or libraries, you have to be extra careful for people that will be using your project later. I have to consider this for my file templates to use for IceBuddha. Some good advice comes from the developers behind Qt who have corrected some things in their API and described it at: Designing Qt-Style C++ APIs
Some examples based on one of the pieces of advice from that article is at: hall of api shame: boolean trap