module LiftToToplevel.LetIn1 where --A definition can be lifted from a where or let to the top level binding group. --Lifting a definition widens the scope of the definition. --In this example, lift 'sq' in 'sumSquares' --This example aims to test lifting a definition from a let clause to top level, --and the elimination of the keywords 'let' and 'in' sumSquares x y = (sq pow) x + (sq pow) y where pow=2 sq pow 0=0 sq pow z=z^pow anotherFun 0 y = sq y where sq x = x^2