finished higher kinds description