milessabin / shapeless Scala 3.4K 519 Generic programming for Scala scala typelevel functional-programming generic-programming