Guidelines for writing useful libraries

General guidelines for writing useful libraries