X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=docs%2Fusers_guide%2Fghci.xml;h=80205954e5ecf0b2e9ee299eda9fa679478073e8;hb=4d8c7c976104d2e39a1183967ec0f254a0fc0a47;hp=d9295484c85e2f84ddf5ea1550b7604f6898e7a4;hpb=ff8799ef2c8d0ab976fa9fc00fc4bc94e1ca5af9;p=ghc-hetmet.git diff --git a/docs/users_guide/ghci.xml b/docs/users_guide/ghci.xml index d929548..8020595 100644 --- a/docs/users_guide/ghci.xml +++ b/docs/users_guide/ghci.xml @@ -28,8 +28,11 @@ $ ghci -GHCi, version 6.8.1: http://www.haskell.org/ghc/ :? for help +GHCi, version 6.12.1: http://www.haskell.org/ghc/ :? for help +Loading package ghc-prim ... linking ... done. +Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. +Loading package ffi-1.0 ... linking ... done. Prelude> @@ -586,10 +589,12 @@ hello Prelude IO> - (Note: you can use import M as an - alternative to :module +M, and + (Note: you can use conventional + haskell import syntax as + well, but this does not support + * forms). :module can also be shortened to - :m). The full syntax of the + :m. The full syntax of the :module command is: @@ -814,16 +819,16 @@ it <- e ghci> reverse [] What should GHCi do? Strictly speaking, the program is ambiguous. show (reverse []) - (which is what GHCi computes here) has type Show a => a and how that displays depends + (which is what GHCi computes here) has type Show a => String and how that displays depends on the type a. For example: - ghci> (reverse []) :: String + ghci> reverse ([] :: String) "" - ghci> (reverse []) :: [Int] + ghci> reverse ([] :: [Int]) [] However, it is tiresome for the user to have to specify the type, so GHCi extends Haskell's type-defaulting - rules (Section 4.3.4 of the Haskell 98 Report (Revised)) as follows. The + rules (Section 4.3.4 of the Haskell 2010 Report) as follows. The standard rules take each group of constraints (C1 a, C2 a, ..., Cn a) for each type variable a, and defaults the type variable if @@ -1938,8 +1943,7 @@ maybe :: b -> (a -> b) -> Maybe a -> b used, respectively. Tags for all the functions, constructors and types in the currently loaded modules are created. All modules must be interpreted for these commands to work. - See also . - + @@ -2331,6 +2335,16 @@ bar + :run + :run + + + See :main. + + + + + :set option... :set @@ -2908,6 +2922,13 @@ Prelude> :set -fno-glasgow-exts because this is normally what you want in an interpreter: output appears as it is generated. + + If you want line-buffered behaviour, as in GHC, you can + start your program thus: + + main = do { hSetBuffering stdout LineBuffering; ... } + + @@ -2917,7 +2938,6 @@ Prelude> :set -fno-glasgow-exts