let y = pick (5 :: Int) :: Which '[Int, Bool] switch y ( cases (show @Bool ./ show @Int ./ nil)) `shouldBe` "5"Or CaseFunc @Typeable to apply a polymorphic function that work on all Typeables.
let y = pick (5 :: Int) :: Which '[Int, Bool] switch y (CaseFunc @Typeable (show . typeRep . (pure @Proxy))) `shouldBe` IntOr you may use your own custom instance of Case.
let y = pickN @0 (5 :: Int) :: Which '[Int, Bool, Bool, Int] switchN y ( casesN (show @Int ./ show @Bool ./ show @Bool ./ show @Int ./ nil)) `shouldBe` "5"Or you may use your own custom instance of Case.