#15 - Separate HList from Generic and add some doc