要加载新模块,您可以使用
Prelude> :m + Mymodule
Run Code Online (Sandbox Code Playgroud)
但重新加载并保持交互式绑定通常是不可能的。重新加载本质上是忘记所有模块并重新加载它们。绑定可能取决于已加载的模块。依赖关系逻辑表明,当 GHCI 忘记某个模块时,它还需要忘记依赖于该模块的所有内容,包括交互式绑定。
例如,GHCI 可以存储用于创建绑定的命令文本,并尝试在重新加载时重新运行这些命令,因为知道其中一些命令可能会失败。但这很快就会变得棘手,所以没有这样做。