    {-# OPTIONS_GHC -Wno-orphans #-}

    module IsomorphismClass.Relations.LazyByteStringAndShortByteString where

    import qualified Data.ByteString.Lazy
    import qualified Data.ByteString.Short
    import IsomorphismClass.Classes
    import IsomorphismClass.Prelude

    instance IsomorphicTo Data.ByteString.Lazy.ByteString Data.ByteString.Short.ShortByteString where
      to :: ShortByteString -> ByteString
    to = StrictByteString -> ByteString
    Data.ByteString.Lazy.fromStrict (StrictByteString -> ByteString)
    -> (ShortByteString -> StrictByteString)
    -> ShortByteString
    -> ByteString
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
    Category cat =>
    cat b c -> cat a b -> cat a c
    . ShortByteString -> StrictByteString
    Data.ByteString.Short.fromShort

    instance IsomorphicTo Data.ByteString.Short.ShortByteString Data.ByteString.Lazy.ByteString where
      to :: ByteString -> ShortByteString
    to = StrictByteString -> ShortByteString
    Data.ByteString.Short.toShort (StrictByteString -> ShortByteString)
    -> (ByteString -> StrictByteString)
    -> ByteString
    -> ShortByteString
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
    Category cat =>
    cat b c -> cat a b -> cat a c
    . ByteString -> StrictByteString
    Data.ByteString.Lazy.toStrict