{-# LANGUAGE FlexibleContexts      #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE InstanceSigs          #-}
{-# LANGUAGE MultiParamTypeClasses #-}

module HaskellWorks.Data.Xml.Internal.ToIbBp64
  ( toBalancedParens64
  , toInterestBits64
  , toIbBp64
  ) where

import Data.ByteString                                  (ByteString)
import HaskellWorks.Data.Xml.Internal.BalancedParens
import HaskellWorks.Data.Xml.Internal.List
import HaskellWorks.Data.Xml.Succinct.Cursor.BlankedXml (BlankedXml (..))

toBalancedParens64 :: BlankedXml -> [ByteString]
toBalancedParens64 :: BlankedXml -> [ByteString]
toBalancedParens64 (BlankedXml [ByteString]
bj) = [ByteString] -> [ByteString]
compressWordAsBit ([ByteString] -> [ByteString]
blankedXmlToBalancedParens [ByteString]
bj)

toInterestBits64 :: BlankedXml -> [ByteString]
toInterestBits64 :: BlankedXml -> [ByteString]
toInterestBits64 (BlankedXml [ByteString]
bj) = [ByteString] -> [ByteString]
blankedXmlToInterestBits [ByteString]
bj

toIbBp64 :: BlankedXml -> [(ByteString, ByteString)]
toIbBp64 :: BlankedXml -> [(ByteString, ByteString)]
toIbBp64 BlankedXml
bj = [ByteString] -> [ByteString] -> [(ByteString, ByteString)]
forall a b. [a] -> [b] -> [(a, b)]
zip (BlankedXml -> [ByteString]
toInterestBits64 BlankedXml
bj) (BlankedXml -> [ByteString]
toBalancedParens64 BlankedXml
bj)