diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,4 @@
+1.0.1
+-----
+
+Add `serialise` and `http-api-data` instances.
diff --git a/base64-bytestring-type.cabal b/base64-bytestring-type.cabal
--- a/base64-bytestring-type.cabal
+++ b/base64-bytestring-type.cabal
@@ -1,88 +1,115 @@
-name:           base64-bytestring-type
-version:        1
-synopsis:       A newtype around ByteString, for base64 encoding
+cabal-version:      1.12
+name:               base64-bytestring-type
+version:            1.0.1
+synopsis:           A newtype around ByteString, for base64 encoding
 description:
   A newtype around ByteString, for base64 encoding.
   Strict and lazy, normal and url alphabet variants.
-category:       Web
-homepage:       https://github.com/futurice/haskell-base64-bytestring-type#readme
-bug-reports:    https://github.com/futurice/haskell-base64-bytestring-type/issues
-author:         Oleg Grenrus <oleg.grenrus@iki.fi>
-maintainer:     Oleg Grenrus <oleg.grenrus@iki.fi>
-license:        BSD3
-license-file:   LICENSE
-build-type:     Simple
-cabal-version:  1.12
+
+category:           Data
+homepage:
+  https://github.com/futurice/haskell-base64-bytestring-type#readme
+
+bug-reports:
+  https://github.com/futurice/haskell-base64-bytestring-type/issues
+
+author:             Oleg Grenrus <oleg.grenrus@iki.fi>
+maintainer:         Oleg Grenrus <oleg.grenrus@iki.fi>
+license:            BSD3
+license-file:       LICENSE
+build-type:         Simple
 tested-with:
-  GHC==7.4.2,
-  GHC==7.6.3,
-  GHC==7.8.4,
-  GHC==7.10.3,
-  GHC==8.0.2,
-  GHC==8.2.2,
-  GHC==8.4.1
+  GHC ==8.6.4 || ==8.4.4 || ==8.2.2 || ==8.0.2 || ==7.10.3 || ==7.8.4
 
-extra-source-files:
-    README.md
+extra-source-files: README.md CHANGELOG.md
 
 source-repository head
-  type: git
+  type:     git
   location: https://github.com/futurice/haskell-base64-bytestring-type
 
+flag cereal
+  description: Instances for @Serialize@ from @cereal@ package
+  manual:      True
+  default:     True
+
+flag serialise
+  description: Instances for @Serialise@ from @serialise@ package
+  manual:      True
+  default:     True
+
+flag http-api-data
+  description:
+    Instances for @To/FromHttpApiData@ from @http-api-data@ package
+
+  manual:      True
+  default:     True
+
 library
-  hs-source-dirs:
-      src
-  ghc-options: -Wall
+  hs-source-dirs:   src
+  ghc-options:      -Wall
 
   -- boot libraries
   -- https://ghc.haskell.org/trac/ghc/wiki/Commentary/Libraries/VersionHistory
   build-depends:
-      base               >=4.5.1.0  && <4.11
-    , binary             >=0.5.1.0  && <0.10
-    , bytestring         >=0.9.2.1  && <0.11
-    , deepseq            >=1.3.0.0  && <1.5
-    , text               >=1.2.3.0  && <1.3
+      base        >=4.7.0.0  && <4.13
+    , binary      >=0.7.1.0  && <0.10
+    , bytestring  >=0.10.4.0 && <0.11
+    , deepseq     >=1.3.0.2  && <1.5
+    , text        >=1.2.3.0  && <1.3
 
   -- other dependencies:
   build-depends:
-      aeson              >=1.2.3.0  && <1.3
-    , base-compat        >=0.9.3    && <0.10
-    , base64-bytestring  >=1.0.0.1  && <1.1
-    , cereal             >=0.5.5.0  && <0.6
-    , hashable           >=1.2.6.1  && <1.3
-    , QuickCheck         >=2.11.3   && <2.12
+      aeson              >=1.2.3.0 && <1.5
+    , base-compat        >=0.9.3   && <0.11
+    , base64-bytestring  >=1.0.0.1 && <1.1
+    , hashable           >=1.2.6.1 && <1.3
+    , QuickCheck         >=2.11.3  && <2.14
 
-  if !impl(ghc >= 8.0)
-    build-depends: semigroups >=0.18.4 && <0.19
+  if !impl(ghc >=8.0)
+    build-depends: semigroups >=0.18.5 && <0.19
 
-  if impl(ghc < 7.5)
-    build-depends: ghc-prim
+  if flag(cereal)
+    build-depends: cereal >=0.5.5.0 && <0.6
 
+  if flag(serialise)
+    build-depends: serialise >=0.2.1.0 && <0.3
+
+  if flag(http-api-data)
+    build-depends: http-api-data ==0.4.*
+
   exposed-modules:
-      Data.ByteString.Base64.Type
-      Data.ByteString.Base64.Lazy.Type
-      Data.ByteString.Base64.URL.Type
-      Data.ByteString.Base64.URL.Lazy.Type
+    Data.ByteString.Base64.Lazy.Type
+    Data.ByteString.Base64.Type
+    Data.ByteString.Base64.URL.Lazy.Type
+    Data.ByteString.Base64.URL.Type
+
   default-language: Haskell2010
 
 test-suite tests
   default-language: Haskell2010
-  type: exitcode-stdio-1.0
-  main-is: Tests.hs
-  hs-source-dirs:
-      test
-  ghc-options: -Wall
+  type:             exitcode-stdio-1.0
+  main-is:          Tests.hs
+  hs-source-dirs:   test
+  ghc-options:      -Wall
 
   -- dependencies with bounds inherited from library:
   build-depends:
-      base
-    , aeson
+      aeson
+    , base
+    , base64-bytestring-type
     , binary
     , bytestring
-    , base64-bytestring-type
-    , cereal
 
+  if flag(cereal)
+    build-depends: cereal
+
+  if flag(serialise)
+    build-depends: serialise
+
+  if flag(http-api-data)
+    build-depends: http-api-data
+
   -- other dependencies
   build-depends:
-      tasty             >=0.10.0.2 && <1.1
-    , tasty-quickcheck  >=0.8.3.2  && <0.10
+      tasty             >=1.2.1 && <1.3
+    , tasty-quickcheck  >=0.10  && <0.11
diff --git a/src/Data/ByteString/Base64/Lazy/Type.hs b/src/Data/ByteString/Base64/Lazy/Type.hs
--- a/src/Data/ByteString/Base64/Lazy/Type.hs
+++ b/src/Data/ByteString/Base64/Lazy/Type.hs
@@ -25,7 +25,6 @@
 import Data.Data               (Data, Typeable)
 import Data.Hashable           (Hashable)
 import Data.Semigroup          (Semigroup (..))
-import Data.Serialize          (Serialize)
 import Data.String             (IsString (..))
 import Data.Text.Lazy          (fromStrict, toStrict)
 import Data.Text.Lazy.Encoding (decodeLatin1, encodeUtf8)
@@ -36,10 +35,14 @@
 
 import qualified Data.ByteString.Base64.Lazy as Base64
 
-#if !(MIN_VERSION_bytestring(0,10,0))
-import Data.ByteString.Lazy.Internal (ByteString (..))
+#ifdef MIN_VERSION_cereal
+import Data.Serialize (Serialize)
 #endif
 
+#ifdef MIN_VERSION_serialise
+import Codec.Serialise (Serialise (..))
+#endif
+
 -- | Aeson serialisable bytestring. Uses base64 encoding.
 --
 -- The inner 'ByteString' is in raw format.
@@ -144,19 +147,39 @@
 -- cereal
 -------------------------------------------------------------------------------
 
+#ifdef MIN_VERSION_cereal
 -- | 'ByteString64' is serialised as 'ByteString'
+--
+-- >>> Cereal.encode (mkBS64 "foobar")
+-- "\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ACKfoobar"
 instance Serialize ByteString64
+#endif
 
 -------------------------------------------------------------------------------
 -- binary
 -------------------------------------------------------------------------------
 
 -- | 'ByteString64' is serialised as 'ByteString'
+--
+-- >>> Binary.encode (mkBS64 "foobar")
+-- "\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ACKfoobar"
 instance Binary ByteString64 where
     put = put . getBS64
     get = fmap makeByteString64 get
 
 -------------------------------------------------------------------------------
+-- serialise
+-------------------------------------------------------------------------------
+
+#ifdef MIN_VERSION_serialise
+-- | >>> Serialise.serialise (mkBS64 "xyzzy")
+-- "_Exyzzy\255"
+instance Serialise ByteString64 where
+    encode = encode . getBS64
+    decode = fmap makeByteString64 decode
+#endif
+
+-------------------------------------------------------------------------------
 -- QuickCheck
 -------------------------------------------------------------------------------
 
@@ -172,5 +195,7 @@
 
 -- $setup
 -- >>> :set -XOverloadedStrings
+-- >>> import qualified Codec.Serialise as Serialise
+-- >>> import qualified Data.Serialize as Cereal
 -- >>> import qualified Data.Binary as Binary
 -- >>> import qualified Data.Aeson as Aeson
diff --git a/src/Data/ByteString/Base64/Type.hs b/src/Data/ByteString/Base64/Type.hs
--- a/src/Data/ByteString/Base64/Type.hs
+++ b/src/Data/ByteString/Base64/Type.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP                #-}
 {-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE DeriveGeneric      #-}
 -- | Strict 'ByteString' standard base64 encoding.
@@ -24,7 +25,6 @@
 import Data.Data          (Data, Typeable)
 import Data.Hashable      (Hashable)
 import Data.Semigroup     (Semigroup (..))
-import Data.Serialize     (Serialize)
 import Data.String        (IsString (..))
 import Data.Text.Encoding (decodeLatin1, encodeUtf8)
 import GHC.Generics       (Generic)
@@ -33,7 +33,20 @@
        shrinkMap)
 
 import qualified Data.ByteString.Base64 as Base64
+import qualified Data.Text              as T
 
+#ifdef MIN_VERSION_cereal
+import Data.Serialize (Serialize)
+#endif
+
+#ifdef MIN_VERSION_serialise
+import Codec.Serialise (Serialise (..))
+#endif
+
+#ifdef MIN_VERSION_http_api_data
+import Web.HttpApiData (FromHttpApiData (..), ToHttpApiData (..))
+#endif
+
 -- | Aeson serialisable bytestring. Uses base64 encoding.
 --
 -- The inner 'ByteString' is in raw format.
@@ -133,19 +146,58 @@
 -- cereal
 -------------------------------------------------------------------------------
 
+#ifdef MIN_VERSION_cereal
 -- | 'ByteString64' is serialised as 'ByteString'
+--
+-- >>> Cereal.encode (mkBS64 "foobar")
+-- "\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ACKfoobar"
 instance Serialize ByteString64
+#endif
 
 -------------------------------------------------------------------------------
 -- binary
 -------------------------------------------------------------------------------
 
 -- | 'ByteString64' is serialised as 'ByteString'
+--
+-- >>> Binary.encode (mkBS64 "foobar")
+-- "\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ACKfoobar"
 instance Binary ByteString64 where
     put = put . getBS64
     get = fmap makeByteString64 get
 
 -------------------------------------------------------------------------------
+-- serialise
+-------------------------------------------------------------------------------
+
+#ifdef MIN_VERSION_serialise
+-- | >>> Serialise.serialise (mkBS64 "xyzzy")
+-- "Exyzzy"
+instance Serialise ByteString64 where
+    encode = encode . getBS64
+    decode = fmap makeByteString64 decode
+#endif
+
+-------------------------------------------------------------------------------
+-- http-api-data
+-------------------------------------------------------------------------------
+
+#ifdef MIN_VERSION_http_api_data
+-- | >>> HTTP.toUrlPiece (mkBS64 $ pack [164..192])
+-- "pKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8A="
+--
+-- /Note:/ the plus in the encoding.
+-- Consider using "Data.ByteString.Base64.URL.Type" variant.
+instance ToHttpApiData ByteString64 where
+    toUrlPiece = decodeLatin1 . getEncodedByteString64
+    toHeader = getEncodedByteString64
+
+instance FromHttpApiData ByteString64 where
+    parseUrlPiece = either (Left .T.pack) (Right . mkBS64) . Base64.decode . encodeUtf8
+    parseHeader = either (Left . T.pack) (Right . mkBS64) . Base64.decode
+#endif
+
+-------------------------------------------------------------------------------
 -- QuickCheck
 -------------------------------------------------------------------------------
 
@@ -161,5 +213,8 @@
 
 -- $setup
 -- >>> :set -XOverloadedStrings
+-- >>> import qualified Codec.Serialise as Serialise
+-- >>> import qualified Data.Serialize as Cereal
 -- >>> import qualified Data.Binary as Binary
 -- >>> import qualified Data.Aeson as Aeson
+-- >>> import qualified Web.HttpApiData as HTTP
diff --git a/src/Data/ByteString/Base64/URL/Lazy/Type.hs b/src/Data/ByteString/Base64/URL/Lazy/Type.hs
--- a/src/Data/ByteString/Base64/URL/Lazy/Type.hs
+++ b/src/Data/ByteString/Base64/URL/Lazy/Type.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE CPP #-}
+{-# LANGUAGE CPP                #-}
 {-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE DeriveGeneric      #-}
 -- | Lazy 'ByteString' base64 encoding with URL and filename safe alphabet.
@@ -25,10 +25,9 @@
 import Data.Data               (Data, Typeable)
 import Data.Hashable           (Hashable)
 import Data.Semigroup          (Semigroup (..))
-import Data.Serialize          (Serialize)
 import Data.String             (IsString (..))
 import Data.Text.Lazy          (fromStrict, toStrict)
-import Data.Text.Lazy.Encoding (decodeLatin1, encodeUtf8, )
+import Data.Text.Lazy.Encoding (decodeLatin1, encodeUtf8)
 import GHC.Generics            (Generic)
 import Test.QuickCheck
        (Arbitrary (..), CoArbitrary (..), Function (..), functionMap,
@@ -36,10 +35,14 @@
 
 import qualified Data.ByteString.Base64.URL.Lazy as Base64
 
-#if !(MIN_VERSION_bytestring(0,10,0))
-import Data.ByteString.Lazy.Internal (ByteString (..))
+#ifdef MIN_VERSION_cereal
+import Data.Serialize (Serialize)
 #endif
 
+#ifdef MIN_VERSION_serialise
+import Codec.Serialise (Serialise (..))
+#endif
+
 -- | Aeson serialisable bytestring. Uses base64 encoding.
 --
 -- The inner 'ByteString' is in raw format.
@@ -144,19 +147,39 @@
 -- cereal
 -------------------------------------------------------------------------------
 
+#ifdef MIN_VERSION_cereal
 -- | 'ByteString64' is serialised as 'ByteString'
+--
+-- >>> Cereal.encode (mkBS64 "foobar")
+-- "\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ACKfoobar"
 instance Serialize ByteString64
+#endif
 
 -------------------------------------------------------------------------------
 -- binary
 -------------------------------------------------------------------------------
 
 -- | 'ByteString64' is serialised as 'ByteString'
+--
+-- >>> Binary.encode (mkBS64 "foobar")
+-- "\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ACKfoobar"
 instance Binary ByteString64 where
     put = put . getBS64
     get = fmap makeByteString64 get
 
 -------------------------------------------------------------------------------
+-- serialise
+-------------------------------------------------------------------------------
+
+#ifdef MIN_VERSION_serialise
+-- | >>> Serialise.serialise (mkBS64 "xyzzy")
+-- "_Exyzzy\255"
+instance Serialise ByteString64 where
+    encode = encode . getBS64
+    decode = fmap makeByteString64 decode
+#endif
+
+-------------------------------------------------------------------------------
 -- QuickCheck
 -------------------------------------------------------------------------------
 
@@ -172,5 +195,7 @@
 
 -- $setup
 -- >>> :set -XOverloadedStrings
+-- >>> import qualified Codec.Serialise as Serialise
+-- >>> import qualified Data.Serialize as Cereal
 -- >>> import qualified Data.Binary as Binary
 -- >>> import qualified Data.Aeson as Aeson
diff --git a/src/Data/ByteString/Base64/URL/Type.hs b/src/Data/ByteString/Base64/URL/Type.hs
--- a/src/Data/ByteString/Base64/URL/Type.hs
+++ b/src/Data/ByteString/Base64/URL/Type.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP                #-}
 {-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE DeriveGeneric      #-}
 -- | Strict 'ByteString' base64 encoding with URL and filename safe alphabet.
@@ -24,7 +25,6 @@
 import Data.Data          (Data, Typeable)
 import Data.Hashable      (Hashable)
 import Data.Semigroup     (Semigroup (..))
-import Data.Serialize     (Serialize)
 import Data.String        (IsString (..))
 import Data.Text.Encoding (decodeLatin1, encodeUtf8)
 import GHC.Generics       (Generic)
@@ -33,7 +33,20 @@
        shrinkMap)
 
 import qualified Data.ByteString.Base64.URL as Base64
+import qualified Data.Text                  as T
 
+#ifdef MIN_VERSION_cereal
+import Data.Serialize (Serialize)
+#endif
+
+#ifdef MIN_VERSION_serialise
+import Codec.Serialise (Serialise (..))
+#endif
+
+#ifdef MIN_VERSION_http_api_data
+import Web.HttpApiData (FromHttpApiData (..), ToHttpApiData (..))
+#endif
+
 -- | Aeson serialisable bytestring. Uses base64 encoding.
 --
 -- The inner 'ByteString' is in raw format.
@@ -130,19 +143,55 @@
 -- cereal
 -------------------------------------------------------------------------------
 
+#ifdef MIN_VERSION_cereal
 -- | 'ByteString64' is serialised as 'ByteString'
+--
+-- >>> Cereal.encode (mkBS64 "foobar")
+-- "\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ACKfoobar"
 instance Serialize ByteString64
+#endif
 
 -------------------------------------------------------------------------------
 -- binary
 -------------------------------------------------------------------------------
 
 -- | 'ByteString64' is serialised as 'ByteString'
+--
+-- >>> Binary.encode (mkBS64 "foobar")
+-- "\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ACKfoobar"
 instance Binary ByteString64 where
     put = put . getBS64
     get = fmap makeByteString64 get
 
 -------------------------------------------------------------------------------
+-- serialise
+-------------------------------------------------------------------------------
+
+#ifdef MIN_VERSION_serialise
+-- | >>> Serialise.serialise (mkBS64 "xyzzy")
+-- "Exyzzy"
+instance Serialise ByteString64 where
+    encode = encode . getBS64
+    decode = fmap makeByteString64 decode
+#endif
+
+-------------------------------------------------------------------------------
+-- http-api-data
+-------------------------------------------------------------------------------
+
+#ifdef MIN_VERSION_http_api_data
+-- | >>> HTTP.toUrlPiece (mkBS64 $ pack [164..192])
+-- "pKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2-v8A="
+instance ToHttpApiData ByteString64 where
+    toUrlPiece = decodeLatin1 . getEncodedByteString64
+    toHeader = getEncodedByteString64
+
+instance FromHttpApiData ByteString64 where
+    parseUrlPiece = either (Left .T.pack) (Right . mkBS64) . Base64.decode . encodeUtf8
+    parseHeader = either (Left . T.pack) (Right . mkBS64) . Base64.decode
+#endif
+
+-------------------------------------------------------------------------------
 -- QuickCheck
 -------------------------------------------------------------------------------
 
@@ -158,5 +207,8 @@
 
 -- $setup
 -- >>> :set -XOverloadedStrings
+-- >>> import qualified Codec.Serialise as Serialise
+-- >>> import qualified Data.Serialize as Cereal
 -- >>> import qualified Data.Binary as Binary
 -- >>> import qualified Data.Aeson as Aeson
+-- >>> import qualified Web.HttpApiData as HTTP
diff --git a/test/Tests.hs b/test/Tests.hs
--- a/test/Tests.hs
+++ b/test/Tests.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 module Main (main) where
 
 import Test.Tasty
@@ -11,8 +12,19 @@
 import qualified Data.ByteString.Base64.URL.Lazy.Type as UL
 import qualified Data.ByteString.Base64.URL.Type      as US
 import qualified Data.ByteString.Lazy                 as LBS
-import qualified Data.Serialize                       as C
 
+#ifdef MIN_VERSION_cereal
+import qualified Data.Serialize as C
+#endif
+
+#ifdef MIN_VERSION_serialise
+import qualified Codec.Serialise as CBOR
+#endif
+
+#ifdef MIN_VERSION_http_api_data
+import qualified Web.HttpApiData as HTTP
+#endif
+
 main :: IO ()
 main = defaultMain tests
 
@@ -20,11 +32,19 @@
 tests = testGroup "Tests"
   [ aeson
   , binary
+#ifdef MIN_VERSION_cereal
   , cereal
+#endif
+#ifdef MIN_VERSION_serialise
+  , serialise
+#endif
+#ifdef MIN_VERSION_http_api_data
+  , httpApiData
+#endif
   ]
 
 aeson :: TestTree
-aeson = testGroup "Aeson"
+aeson = testGroup "aeson"
     [ testProperty "strict"     propS
     , testProperty "lazy"       propL
     , testProperty "strict url" propUL
@@ -37,7 +57,7 @@
     propUS bs64 = A.decode (A.encode bs64) === Just (bs64 :: US.ByteString64)
 
 binary :: TestTree
-binary = testGroup "Binary"
+binary = testGroup "binary"
     [ testProperty "strict"     propS
     , testProperty "lazy"       propL
     , testProperty "strict url" propUL
@@ -56,8 +76,9 @@
     propUL ws = let bs64 = UL.makeByteString64 (LBS.pack ws)
                 in B.decode (B.encode bs64) === bs64
 
+#ifdef MIN_VERSION_cereal
 cereal :: TestTree
-cereal = testGroup "Cereal"
+cereal = testGroup "cereal"
     [ testProperty "strict"     propS
     , testProperty "lazy"       propL
     , testProperty "strict url" propUL
@@ -75,3 +96,56 @@
 
     propUL ws = let bs64 = UL.makeByteString64 (LBS.pack ws)
                 in C.decode (C.encode bs64) === Right bs64
+#endif
+
+#ifdef MIN_VERSION_serialise
+serialise :: TestTree
+serialise = testGroup "serialise"
+    [ testProperty "strict"     propS
+    , testProperty "lazy"       propL
+    , testProperty "strict url" propUL
+    , testProperty "lazy url"   propUS
+    ]
+  where
+    propS ws = let bs64 = S.makeByteString64 (BS.pack ws)
+               in CBOR.deserialiseOrFail (CBOR.serialise bs64) === Right bs64
+
+    propL ws = let bs64 = L.makeByteString64 (LBS.pack ws)
+               in CBOR.deserialiseOrFail (CBOR.serialise bs64) === Right bs64
+
+    propUS ws = let bs64 = US.makeByteString64 (BS.pack ws)
+                in CBOR.deserialiseOrFail (CBOR.serialise bs64) === Right bs64
+
+    propUL ws = let bs64 = UL.makeByteString64 (LBS.pack ws)
+                in CBOR.deserialiseOrFail (CBOR.serialise bs64) === Right bs64
+#endif
+
+#ifdef MIN_VERSION_http_api_data
+httpApiData :: TestTree
+httpApiData = testGroup "http-api-data"
+    [ testProperty "toUrlPiece"       propU
+    , testProperty "toUrlPiece url"   propUU
+    , testProperty "toHeader"         propH
+    , testProperty "toHeader url"     propHU
+    , testProperty "toQueryParam"     propQ
+    , testProperty "toQueryParam url" propQU
+    ]
+  where
+    propU ws = let bs64 = S.makeByteString64 (BS.pack ws)
+               in HTTP.parseUrlPiece (HTTP.toUrlPiece bs64) === Right bs64
+
+    propUU ws = let bs64 = US.makeByteString64 (BS.pack ws)
+                in HTTP.parseUrlPiece (HTTP.toUrlPiece bs64) === Right bs64
+
+    propH ws = let bs64 = S.makeByteString64 (BS.pack ws)
+               in HTTP.parseHeader (HTTP.toHeader bs64) === Right bs64
+
+    propHU ws = let bs64 = US.makeByteString64 (BS.pack ws)
+                in HTTP.parseHeader (HTTP.toHeader bs64) === Right bs64
+
+    propQ ws = let bs64 = S.makeByteString64 (BS.pack ws)
+               in HTTP.parseQueryParam (HTTP.toQueryParam bs64) === Right bs64
+
+    propQU ws = let bs64 = US.makeByteString64 (BS.pack ws)
+                in HTTP.parseQueryParam (HTTP.toQueryParam bs64) === Right bs64
+#endif
