+ ___ ___ _
+ / _ \ /\ /\/ __(_)
+ / /_\// /_/ / / | | GHC Interactive, version 4.11, For Haskell 98.
+/ /_\\/ __ / /___| | http://www.haskell.org/ghc/
+\____/\/ /_/\____/|_| Type :? for help.
+
+Loading package std ... linking ... done.
+Prelude> :unset +s +t
+Prelude> -- tests for :def, :undef
+Prelude> let void m = m >> return ""
+Prelude> let echo s = void (putStrLn s)
+Prelude> :def echo echo
+Prelude> :echo hello, world!
+Prelude>
+Prelude> let echo s = return (":! echo " ++ map Char.toUpper s)
+hello, world!
+Prelude> :echo hello, world!
+Prelude> :def echo echo
+ghc: command `echo' is already defined
+Prelude> :undef echo
+Prelude> :def echo echo
+Prelude> :echo hello, world!
+HELLO, WORLD!
+Prelude> Leaving GHCi.
+hello, world!