diff --git a/hw-prelude.cabal b/hw-prelude.cabal index d8d821c..b0a9648 100644 --- a/hw-prelude.cabal +++ b/hw-prelude.cabal @@ -96,5 +96,6 @@ library HaskellWorks.IO.Network.Socket HaskellWorks.IO.Process HaskellWorks.Prelude + HaskellWorks.ToText HaskellWorks.Unsafe hs-source-dirs: src diff --git a/src/HaskellWorks/ToText.hs b/src/HaskellWorks/ToText.hs new file mode 100644 index 0000000..8e074e8 --- /dev/null +++ b/src/HaskellWorks/ToText.hs @@ -0,0 +1,25 @@ +module HaskellWorks.ToText + ( ToText (..) + ) where + +import Data.Function +import Data.String (String) +import Data.Text (Text) +import qualified Data.Text as T +import qualified Data.Text.Lazy as LT +import qualified Data.Text.Lazy.Builder as TB + +class ToText a where + toText :: a -> Text + +instance ToText String where + toText = T.pack + +instance ToText Text where + toText = id + +instance ToText LT.Text where + toText = LT.toStrict + +instance ToText TB.Builder where + toText = LT.toStrict . TB.toLazyText