@@ -124,17 +124,36 @@ expandTilde p = return p
124124--
125125helpMessage :: String
126126helpMessage = "The following commands are available:\n\n " ++
127− intercalate "\n " (map line D.help)
127+ intercalate "\n " (map line D.help) ++
128+ "\n\n" ++ extraHelp
128129 where
129− line :: (Directive, String, String) -> String
130− line (dir, arg, desc) = intercalate " "
131− [ cmd
132− , replicate (11 - length cmd) ' '
133− , arg
134− , replicate (11 - length arg) ' '
135− , desc
136− ]
137− where cmd = ":" ++ D.stringFor dir
130+ line :: (Directive, String, String) -> String
131+ line (dir, arg, desc) =
132+ let cmd = ':' : D.stringFor dir
133+ in intercalate " "
134+ [ cmd
135+ , replicate (11 - length cmd) ' '
136+ , arg
137+ , replicate (11 - length arg) ' '
138+ , desc
139+ ]
140+
141+ extraHelp = unlines
142+ [ "Once a file has been loaded, values and types in the module(s) that it"
143+ , "contains are available fully qualified:"
144+ , ""
145+ , " > :type Data.Function.on"
146+ , " forall a b c. (b -> b -> c) -> (a -> b) -> a -> a -> c"
147+ , ""
148+ , "Alternatively, you can import a loaded module in order to bring types and"
149+ , "values into the current scope - then, you can use them unqualified."
150+ , ""
151+ , "Modules can be imported normally, as in PureScript code, eg:"
152+ , ""
153+ , " > import Control.Monad"
154+ , " > import Prelude.Unsafe (unsafeIndex)"
155+ , " > import qualified Data.List as L"
156+ ]
138157
139158-- |
140159-- The welcome prologue.