module Inferno.Utils.Prettyprinter where import Control.Monad.IO.Class (MonadIO (..)) import qualified Data.Text as Text (Text) import qualified Data.Text.IO as Text (putStrLn) import Prettyprinter ( Doc, LayoutOptions (LayoutOptions), PageWidth (AvailablePerLine), Pretty (..), layoutSmart, ) import Prettyprinter.Render.Text (renderStrict) renderDoc :: Doc ann -> Text.Text renderDoc :: forall ann. Doc ann -> Text renderDoc = forall ann. SimpleDocStream ann -> Text renderStrict forall b c a. (b -> c) -> (a -> b) -> a -> c . forall ann. LayoutOptions -> Doc ann -> SimpleDocStream ann layoutSmart (PageWidth -> LayoutOptions LayoutOptions (Int -> Double -> PageWidth AvailablePerLine Int 80 Double 1)) renderPretty :: Pretty a => a -> Text.Text renderPretty :: forall a. Pretty a => a -> Text renderPretty = forall ann. Doc ann -> Text renderDoc forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a ann. Pretty a => a -> Doc ann pretty showPretty :: MonadIO m => Pretty a => a -> m () showPretty :: forall (m :: * -> *) a. (MonadIO m, Pretty a) => a -> m () showPretty = forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c . Text -> IO () Text.putStrLn forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a. Pretty a => a -> Text renderPretty