greeting('Woah'); # Waits ... greeting('Nelly'); # prints now that it has both arguments #### greeting verb object = putStrLn (verb ++ ", " ++ object) #### greeting :: String -> String -> IO () #### greeting :: String -> ( String -> IO () ) #### greeting "Hello" "World" (greeting "Hello") "World" ((greeting) "Hello") "World" #### greeting "Hello" "World" :: IO () greeting "Hello" :: String -> IO () greeting :: String -> String -> IO () #### sub foo { print "@_" } #### (-) 2 1 ==> 1 flip (-) 2 1 ==> -1 dec1 = flip (-) 1 dec1 2 ==> 1