showInfo :: SearchResult -> IO ()
showInfo = runReaderT $ do
  SearchResult{..} <- ask

  liftIO $ do
    let artistsCount     = length artists
        startNumber      = artistsCount + 1
        showAlbums album = mconcat [ title album
                                   , " ("
                                   , fromString . show $ year album
                                   , ")"]
        numeratedArtists = numerate name 1 artists
        numeratedAlbums  = numerate showAlbums startNumber albums

    T.putStrLn "\nFound artists:"
    mapM_ T.putStrLn numeratedArtists

    T.putStrLn "\nFound albums:"
    mapM_ T.putStrLn numeratedAlbums

  choosePoint
showInfo :: SearchResult -> IO ()
showInfo = runReaderT $ do
  SearchResult{..} <- ask

  liftIO $ do
    let artistsCount     = length artists
        startNumber      = artistsCount + 1
        showAlbums album = mconcat [ title album
                                   , " ("
                                   , fromString . show $ year album
                                   , ")"]
        numeratedArtists = numerate name 1 artists
        numeratedAlbums  = numerate showAlbums startNumber albums

    T.putStrLn "\nFound artists:"
    mapM_ T.putStrLn numeratedArtists

    T.putStrLn "\nFound albums:"
    mapM_ T.putStrLn numeratedAlbums

  choosePoint
showInfo = runReaderT $ do
  SearchResult{..} <- ask

  liftIO $ do
    let artistsCount     = length artists
        startNumber      = artistsCount + 1
        showAlbums album = mconcat [ title album
                                   , " ("
                                   , fromString . show $ year album
                                   , ")"]
        numeratedArtists = numerate name 1 artists
        numeratedAlbums  = numerate showAlbums startNumber albums

    T.putStrLn "\nFound artists:"
    mapM_ T.putStrLn numeratedArtists

    T.putStrLn "\nFound albums:"
    mapM_ T.putStrLn numeratedAlbums

  choosePoint