Change/higher kinded

This is the new higher-kinded scheme. 
No, it does not. I changed to comment to exclude singleton type in general and adapted the implementation accordingly.