@@ -323,14 +323,25 @@ handleImport moduleName = do
323externPursFile :: FilePath -> FilePath
323externPursFile :: FilePath -> FilePath
324externPursFile moduleName = modulesDir ++ pathSeparator : moduleName ++ pathSeparator : "externs.purs"
324externPursFile moduleName = modulesDir ++ pathSeparator : moduleName ++ pathSeparator : "externs.purs"
327+-- Read the module's type definition.
329+readModuleTypes :: String -> IO String
330+readModuleTypes [] = return "Module must be specified."
331+readModuleTypes moduleName = let moduleFile = externPursFile moduleName in
333+ exists <- doesFileExist moduleFile
335+ then readFile moduleFile
336+ else return $ "Module '" ++ moduleName ++ "' not found!"
327-- Browse and display the module's function signatures
339-- Browse and display the module's function signatures
328−-- readFile :: FilePath -> IO String
330handleBrowse :: P.ModuleName -> PSCI ()
341handleBrowse :: P.ModuleName -> PSCI ()
331handleBrowse moduleName = do
342handleBrowse moduleName = do
332 st <- PSCI $ lift get
343 st <- PSCI $ lift get
333− psciIO $ (readFile . externPursFile . N.runModuleName) moduleName >>= putStrLn
344+ psciIO $ (readModuleTypes . N.runModuleName) moduleName >>= putStrLn
334 PSCI $ lift $ put st
345 PSCI $ lift $ put st
335 return ()
346 return ()