LeposhapelessWays to pattern match generic types in ScalaSolving problems in a generic way using Shapeless