A generic library for reasoning about languages with binders