ppADT :: [(BS.ByteString, Exp)] -> PP ()
ppADT ms = do
    useClassy <- getCfg useClassyObjects
    if useClassy && args <= 6
      then "new T" .+. put args .+. "(" .+. ppList "," (map snd ms) .+. ")"
      else "{" .+. ppList "," ms .+. "}"
  where
    args = length ms-1
ppADT :: [(BS.ByteString, Exp)] -> PP ()
ppADT ms = do
    useClassy <- getCfg useClassyObjects
    if useClassy && args <= 6
      then "new T" .+. put args .+. "(" .+. ppList "," (map snd ms) .+. ")"
      else "{" .+. ppList "," ms .+. "}"
  where
    args = length ms-1
ppADT ms = do
    useClassy <- getCfg useClassyObjects
    if useClassy && args <= 6
      then "new T" .+. put args .+. "(" .+. ppList "," (map snd ms) .+. ")"
      else "{" .+. ppList "," ms .+. "}"
  where
    args = length ms-1