1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
-- | Demonstration of ambiguity in HughesPJ library at this time. GHC's
-- internal copy has a different answer than we currently do, preventing them
-- using our library.
module Main (main) where
import Text.PrettyPrint.HughesPJ
main :: IO ()
main = do
putStrLn ""
putStrLn "Note that the correct definition of sep is currently unclear"
putStrLn "It is neither foldr ($+$) empty nor foldr ($$) empty"
putStrLn "------------------------------------------------------------"
let test1 = [ text "" $+$ text "c", nest 3 ( text "a") ]
let test2 = [ text "c", nest 3 ( text "b") ]
putStrLn "--------------------------Test 1----------------------------"
putStrLn "[ text \"\" $+$ text \"c\", nest 3 ( text \"a\") ]"
putStrLn "-----------------------------sep----------------------------"
print $ renderStyle style{lineLength=1} $ sep test1
putStrLn "-----------------------------<+>----------------------------"
print $ renderStyle style{lineLength=1} $ foldr (<+>) empty test1
putStrLn "-----------------------------$+$----------------------------"
print $ renderStyle style{lineLength=1} $ foldr ($+$) empty test1
putStrLn "------------------------------$$----------------------------"
print $ renderStyle style{lineLength=1} $ foldr ($$) empty test1
putStrLn "--------------------------Test 2----------------------------"
putStrLn "[ text \"c\", nest 3 ( text \"b\") ]"
putStrLn "-----------------------------sep----------------------------"
print $ renderStyle style{lineLength=1} $ sep test2
putStrLn "-----------------------------<+>----------------------------"
print $ renderStyle style{lineLength=1} $ foldr (<+>) empty test2
putStrLn "-----------------------------$+$----------------------------"
print $ renderStyle style{lineLength=1} $ foldr ($+$) empty test2
putStrLn "------------------------------$$----------------------------"
print $ renderStyle style{lineLength=1} $ foldr ($$) empty test2
|