The ability to instantiate multiple types by redefining the defines (as it were) is a pretty clever approach. I also love the idea of using small, self-contained "no bloat" libraries such as this one to build software. I was able to get a test program up and running in less than two minutes. Nice!