If we're going to map over an HList we need “functions” which can be applied to all of its element types • Natural transformations? F[T] => G[T] Not general enough ... only gets us to KLists • SYB gives us the clue Represent polymorphic function values via type classes and instances (taking in singleton and dependent types on the way) • Code ...