Demonstration of possible reductions in library size

I was playing around and noticed some repetition in the code, so I thought I'd cook up a little example of how you can make some simple micro-DSLs in these cases to reduce library size.

It's getting late now so I'm just sending the pull request even though it's broken, **very** broken. It still shows what's possible though and achieves a bit of size reduction already.