Add putErrLn to match putStrLn (#67)

* Add `putErrLn` to match `putStrLn`

Fix #66

* Add putErr for the most usual inference case

* Rename `putErr` into `putErrText`

In order to allow further specializations in the future if necessary.
This commit is contained in:
Pi3r
2017-10-04 08:53:19 +01:00
committed by Stephen Diehl
parent 923194c5b2
commit 72085dec92
+8 -1
View File
@@ -8,6 +8,7 @@
module Protolude.Show ( module Protolude.Show (
Print(..), Print(..),
putText, putText,
putErrText,
putLText, putLText,
putByteString, putByteString,
putLByteString, putLByteString,
@@ -27,7 +28,7 @@ import qualified Data.Text.IO as T
import qualified Data.Text.Lazy as TL import qualified Data.Text.Lazy as TL
import qualified Data.Text.Lazy.IO as TL import qualified Data.Text.Lazy.IO as TL
import System.IO (Handle, stdout) import System.IO (Handle, stdout, stderr)
class Print a where class Print a where
@@ -37,6 +38,8 @@ class Print a where
hPutStrLn :: MonadIO m => Handle -> a -> m () hPutStrLn :: MonadIO m => Handle -> a -> m ()
putStrLn :: MonadIO m => a -> m () putStrLn :: MonadIO m => a -> m ()
putStrLn = hPutStrLn stdout putStrLn = hPutStrLn stdout
putErrLn :: MonadIO m => a -> m ()
putErrLn = hPutStrLn stderr
instance Print T.Text where instance Print T.Text where
hPutStr = \h -> liftIO . T.hPutStr h hPutStr = \h -> liftIO . T.hPutStr h
@@ -74,3 +77,7 @@ putByteString = putStrLn
putLByteString :: MonadIO m => BL.ByteString -> m () putLByteString :: MonadIO m => BL.ByteString -> m ()
putLByteString = putStrLn putLByteString = putStrLn
{-# SPECIALIZE putLByteString :: BL.ByteString -> Base.IO () #-} {-# SPECIALIZE putLByteString :: BL.ByteString -> Base.IO () #-}
putErrText :: MonadIO m => T.Text -> m ()
putErrText = putErrLn
{-# SPECIALIZE putErrText :: T.Text -> Base.IO () #-}