packages feed

retrie-0.1.0.0: tests/inputs/Shadowing.test

# Copyright (c) Facebook, Inc. and its affiliates.
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.
#
-u Shadowing.foo
===
 module Shadowing where
 
 foo :: Int -> Int
 foo = succ
 
 bar :: Int -> Int
-bar x = foo x
+bar x = succ x
 
 baz :: (Int -> Int) -> Int -> Int
 baz foo = foo
 
 quux :: Int -> Int
 quux x =
   let foo = pred
   in foo x
 
 boo :: Int -> Int
 boo x =
-  let bar = foo
+  let bar = succ
   in let foo = pred
          baz = foo
      in foo x
 
 foomap :: Int -> Int
-foomap x = map (\ foo -> foo x) [succ, pred, foo]
+foomap x = map (\ foo -> foo x) [succ, pred, succ]
 
 foowhere :: Int -> Int
-foowhere x = foo (bar x)
+foowhere x = succ (bar x)
   where
-    bar = baz foo
+    bar = baz succ
     baz foo = foo
 
 foowhere2 :: Int -> Int
-foowhere2 x = foo (bar x)
+foowhere2 x = succ (bar x)
   where
     bar = foo
       where
         foo = baz
         baz = foo
 
 fooguards :: Int -> Int
 fooguards x
-  | Just bar <- return foo = bar (foo x)
-  | Just foo <- return foo = foo x
-  | Just foo <- return foo, Just bar <- return foo = bar (foo x)
-  | otherwise = foo x
+  | Just bar <- return succ = bar (succ x)
+  | Just foo <- return succ = foo x
+  | Just foo <- return succ, Just bar <- return foo = bar (foo x)
+  | otherwise = succ x
 
 foomonadic :: Int -> Maybe Int
 foomonadic x = do
-  y <- return $ foo x
-  foo <- return (foo . pred)
+  y <- return $ succ x
+  foo <- return (succ . pred)
   z <- return $ foo y
   return $ foo z
 
 foomonadic2 :: Int -> Maybe Int
 foomonadic2 x = do
-  y <- return $ foo x
+  y <- return $ succ x
   let foo = pred
       z = foo y
   return $ foo x + z