CurryInfo: curry-repl-1.2.0 / REPL.Main.processLoad

definition:
processLoad :: ReplState -> String -> IO (Maybe ReplState)
processLoad rst args = do
  rst' <- terminateSourceProgGUIs rst
  let dirmodname = stripCurrySuffix args
  if null dirmodname
    then skipCommand "missing module name"
    else do
      let (dirname, modname) = splitFileName dirmodname
      mbrst <- if (dirname == "./") then return (Just rst')
               else do putStrLn $ "Changing working directory to " ++ dirname
                       processCd rst' dirname
      maybe (return Nothing)
        (\rst2 ->
          lookupModuleSource (loadPaths rst2) modname >>=
          maybe (skipCommand $
                   "source file of module '" ++ dirmodname ++ "' not found")
                (\_ -> loadCurryProgram rst2 { currMod = modname, addMods = [] }
                                        modname)
        )
        mbrst
demand:
no demanded arguments
deterministic:
deterministic operation
documentation:
--- Process :load command
failfree:
<FAILING>
indeterministic:
referentially transparent operation
infix:
no fixity defined
iotype:
{(_,_) |-> _}
name:
processLoad
precedence:
no precedence defined
result-values:
_
signature:
REPL.State.ReplState -> String
-> Prelude.IO (Prelude.Maybe REPL.State.ReplState)
solution-complete:
operation might suspend on free variables
terminating:
possibly non-terminating
totally-defined:
possibly non-reducible on same data term