connPart <- fmap concat $ (flip mapM) ["user", "password", "host", "port"] $ \key -> do value <- lookupScalar key settings return $ append (snoc (pack key) '=') (snoc value ' ') return $ append connPart (append " dbname= " database)