module Internal.TH where import Language.Haskell.TH.Syntax (Dec (..), Q (..), Type (..), mkName) import RIO deriveProduct :: [String] -> [String] -> Q [Dec] deriveProduct cs ss = return $ [ StandaloneDerivD Nothing [] (AppT x y) | x <- ConT . mkName <$> cs , y <- ConT . mkName <$> ss ]