{-# OPTIONS_GHC -Wno-orphans #-}

module LawfulConversions.Relations.LazyTextBuilderAndString where

import qualified Data.Text.Lazy
import qualified Data.Text.Lazy.Builder
import LawfulConversions.Classes
import LawfulConversions.Prelude
import LawfulConversions.Relations.StringAndText ()

instance IsSome String Data.Text.Lazy.Builder.Builder where
  to :: Builder -> String
to = Text -> String
Data.Text.Lazy.unpack (Text -> String) -> (Builder -> Text) -> Builder -> String
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
. Builder -> Text
Data.Text.Lazy.Builder.toLazyText
  maybeFrom :: String -> Maybe Builder
maybeFrom = (Text -> Builder) -> Maybe Text -> Maybe Builder
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Text -> Builder
Data.Text.Lazy.Builder.fromText (Maybe Text -> Maybe Builder)
-> (String -> Maybe Text) -> String -> Maybe Builder
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
. String -> Maybe Text
forall a b. IsSome a b => a -> Maybe b
maybeFrom

instance IsMany String Data.Text.Lazy.Builder.Builder where
  from :: String -> Builder
from = String -> Builder
forall a. IsString a => String -> a
fromString