Same as my suggestion here:
However, I think this often turns out to be "putting the cart before the horse". It's a good idea for systems programing. But, an application programmer IMHO, should simply choose the best API available and write against it. And, focus on keeping their internal...