diff options
Diffstat (limited to 'testsuite/tests/ghc-api/exactprint/WhereIn3a.hs')
-rw-r--r-- | testsuite/tests/ghc-api/exactprint/WhereIn3a.hs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/testsuite/tests/ghc-api/exactprint/WhereIn3a.hs b/testsuite/tests/ghc-api/exactprint/WhereIn3a.hs new file mode 100644 index 0000000000..acc94d3621 --- /dev/null +++ b/testsuite/tests/ghc-api/exactprint/WhereIn3a.hs @@ -0,0 +1,20 @@ +module WhereIn3a where + +--A definition can be demoted to the local 'where' binding of a friend declaration, +--if it is only used by this friend declaration. + +--Demoting a definition narrows down the scope of the definition. +--In this example, demote the top level 'sq' to 'sumSquares' +--In this case (there are multi matches), the parameters are not folded after demoting. + +sumSquares x y = sq p x + sq p y + where p=2 {-There is a comment-} + +sq :: Int -> Int -> Int +sq pow 0 = 0 -- prior comment +sq pow z = z^pow --there is a comment + +-- A leading comment +anotherFun 0 y = sq y + where sq x = x^2 + |