@@ -323,14 +323,25 @@ handleImport moduleName = do
323323externPursFile :: FilePath -> FilePath
324324externPursFile moduleName = modulesDir ++ pathSeparator : moduleName ++ pathSeparator : "externs.purs"
325325
326+-- |
327+-- Read the module's type definition.
328+--
329+readModuleTypes :: String -> IO String
330+readModuleTypes [] = return "Module must be specified."
331+readModuleTypes moduleName = let moduleFile = externPursFile moduleName in
332+ do
333+ exists <- doesFileExist moduleFile
334+ if exists
335+ then readFile moduleFile
336+ else return $ "Module '" ++ moduleName ++ "' not found!"
337+
326338-- |
327339-- Browse and display the module's function signatures
328−-- readFile :: FilePath -> IO String
329340--
330341handleBrowse :: P.ModuleName -> PSCI ()
331342handleBrowse moduleName = do
332343 st <- PSCI $ lift get
333− psciIO $ (readFile . externPursFile . N.runModuleName) moduleName >>= putStrLn
344+ psciIO $ (readModuleTypes . N.runModuleName) moduleName >>= putStrLn
334345 PSCI $ lift $ put st
335346 return ()
336347