0 | module Text.PrettyPrint.Prettyprinter.Render.String
3 | import Text.PrettyPrint.Prettyprinter.Doc
8 | renderString : SimpleDocStream ann -> String
9 | renderString SEmpty = neutral
10 | renderString (SChar c rest) = singleton c <+> renderString rest
11 | renderString (SText l t rest) = t <+> renderString rest
12 | renderString (SLine l rest) = singleton '\n' <+> textSpaces l <+> renderString rest
13 | renderString (SAnnPush ann rest) = renderString rest
14 | renderString (SAnnPop rest) = renderString rest
17 | renderIO : SimpleDocStream ann -> IO ()
18 | renderIO SEmpty = pure ()
19 | renderIO (SChar c rest) = do putChar c;
renderIO rest
20 | renderIO (SText l t rest) = do putStr t;
renderIO rest
21 | renderIO (SLine l rest) = do putChar '\n'
22 | putStr (textSpaces l)
24 | renderIO (SAnnPush ann rest) = renderIO rest
25 | renderIO (SAnnPop rest) = renderIO rest
29 | putDoc : Doc ann -> IO ()
30 | putDoc = renderIO . layoutPretty defaultLayoutOptions