The wreq-stringless package


This library wraps all functions from Network.Wreq which expects a String and replaces the String Type with the Network.Wreq.StringLess.StringLike Type-Class.

Instances for Network.Wreq.StringLess.StringLike are given for:

So you can use any of this types instead of String.

To use this library, replace your the wreq dependency from your cabal file with wreq-stringless and import Network.Wreq.StringLess instead of Network.Wreq.

The versions of this library correspond with the version of wreq.

see for examples.

[Skip to ReadMe]


Dependenciesbase (>=4.7 && <5), bytestring, text, utf8-string, wreq (== [details]
AuthorJuergen Keck
MaintainerJuergen Keck <>
Home page
Bug tracker
Source repositoryhead: git clone
UploadedThu Jan 12 19:02:49 UTC 2017 by jkeck




Maintainers' corner

For package maintainers and hackage trustees

Readme for wreq-stringless-

wreq-stringless: Simple wrapper to use wreq without Strings

This Haskell library wraps Network.Wreq to use the functions without Strings.

You can use:

for all functions from Network.Wreq where the original implementation use Strings.


{-# LANGUAGE OverloadedStrings #-}
module Main where

import qualified Data.Text               as T
import           Lens.Micro.Extras       (view)
import qualified Network.Wreq            as Wreq
import qualified Network.Wreq.StringLess as Wreq'

-- say we use a alternate prelude like 'Protolude', and we don't use Strings
-- or we have the url from somewhere else, and it's not a String.
url :: T.Text
url = ""

main :: IO ()
main = do
  -- with plain wreq 
  view Wreq.responseStatus  <$> Wreq.get (T.unpack url) >>= print

  -- with wreq-stringless - no manual conversion necessary
  view Wreq'.responseStatus <$> Wreq'.get url >>= print

How to use it:

The versions of this library correspond with the version of wreq. So if you need wreq- you add wreq-stringless- as a dependency.