pages :: Connection -> IO [Either LastfmError Value]
pages conn = do
  first <- query conn (User.getFriends <*> user target)
  let ps = fromMaybe 1 (preview total first)
  (first :) <$> forConcurrently [2..ps] (\p -> query conn (User.getFriends <*> user target <* page p))
pages :: Connection -> IO [Either LastfmError Value]
pages conn = do
  first <- query conn (User.getFriends <*> user target)
  let ps = fromMaybe 1 (preview total first)
  (first :) <$> forConcurrently [2..ps] (\p -> query conn (User.getFriends <*> user target <* page p))
pages conn = do
  first <- query conn (User.getFriends <*> user target)
  let ps = fromMaybe 1 (preview total first)
  (first :) <$> forConcurrently [2..ps] (\p -> query conn (User.getFriends <*> user target <* page p))